elasticsearch 在Kibana上查询Lucene发现未按预期工作?,elasticsearch,lucene,logstash,kibana,elasticsearch,Lucene,Logstash,Kibana" /> elasticsearch 在Kibana上查询Lucene发现未按预期工作?,elasticsearch,lucene,logstash,kibana,elasticsearch,Lucene,Logstash,Kibana" />

elasticsearch 在Kibana上查询Lucene发现未按预期工作?

elasticsearch 在Kibana上查询Lucene发现未按预期工作?,elasticsearch,lucene,logstash,kibana,elasticsearch,Lucene,Logstash,Kibana,我正在尝试在日志存储索引的“主机”属性上搜索服务器名称 我正在Kibana的“发现”选项卡上搜索 当我在搜索栏中录制sl00pm时,我得到: 未找到任何结果 但当我添加星号(*)并搜索sl00pm*时,我得到了以下结果: 主持人:sl00pm.soo85.poly-vale.intra日期:2019-03-20 15:23:10591 我不明白为什么 但是,当我对另一个服务器名执行相同的manip时,我得到了以下结果: 主持人:slzq85.soo85.poly-vale.intra-date:

我正在尝试在日志存储索引的“主机”属性上搜索服务器名称

我正在Kibana的“发现”选项卡上搜索

当我在搜索栏中录制sl00pm时,我得到:

未找到任何结果

但当我添加星号(*)并搜索sl00pm*时,我得到了以下结果:

主持人:sl00pm.soo85.poly-vale.intra日期:2019-03-20 15:23:10591

我不明白为什么

但是,当我对另一个服务器名执行相同的manip时,我得到了以下结果:

主持人:slzq85.soo85.poly-vale.intra-date:21/Mar/2019:09:24:56+0100

这就是我所期待的

以下是我的LogStash索引的定义:

{
 "logstash-2019.03.20": {
  "aliases": {},
  "mappings": {
   "apache-access": {
    "_all": {
     "enabled": true,
     "norms": false
    },
    "dynamic_templates": [
     {
      "message_field": {
       "match": "message",
       "match_mapping_type": "string",
       "mapping": {
        "index": "analyzed",
        "omit_norms": true,
        "type": "string"
       }
      }
     },
     {
      "string_fields": {
       "match": "*",
       "match_mapping_type": "string",
       "mapping": {
        "fields": {
         "raw": {
          "ignore_above": 256,
          "index": "not_analyzed",
          "type": "string"
         }
        },
        "index": "analyzed",
        "omit_norms": true,
        "type": "string"
       }
      }
     }
    ],
    "properties": {
     "@timestamp": {
      "type": "date"
     },
     "@version": {
      "type": "keyword"
     },
     "date": {
      "type": "text",
      "norms": false,
      "fields": {
       "raw": {
        "type": "keyword",
        "ignore_above": 256
       }
      }
     },
     "host": {
      "type": "text",
      "norms": false,
      "fields": {
       "raw": {
        "type": "keyword",
        "ignore_above": 256
       }
      }
     }
    }
   },
  },
  "settings": {
   "index": {
    "refresh_interval": "5s",
    "number_of_shards": "5",
    "provided_name": "logstash-2019.03.20",
    "creation_date": "1553036402235",
    "number_of_replicas": "1",
    "uuid": "mCSFLYGETPm6qbgOwShHog",
    "version": {
     "created": "5060399"
    }
   }
  }
 }
}
版本为:

version": {
 "number": "5.6.3",
 "lucene_version": "6.6.1"
},
你能告诉我为什么我的成绩不好吗

我想补充一点,我使用的是映射类型,在索引的不同映射类型中具有相同的属性,但定义与上面相同


关于

这种行为的原因是分析器在哪里打断了单词。标准分析器根据中列出的规则断开单词。特别是规则WB6和WB11,这里需要注意

基本上,它不会在中间用“.'”字母(EX:“ab.cd”)或在中间带有“.'”的数字(EX:“12.34”),但它会在由'.'(EX:“12 .cd”)分隔的数字和字母上断裂。

因此,在您的索引中,“sl00pm.soo85”作为单个标记进行索引,但“slzq85.soo85”被分为两个标记:“slz85”和“soo85”


标准分析器的设计目的是在文本上工作得最好。单词和句子。对于您正在查看的标识符,您可能会尝试使用不同的分析器。

这种行为的原因是分析器打断了单词。标准分析器根据中列出的规则断开单词。特别是规则WB6和WB11,这里需要注意

基本上,它不会在中间用“.'”字母(EX:“ab.cd”)或在中间带有“.'”的数字(EX:“12.34”),但它会在由'.'(EX:“12 .cd”)分隔的数字和字母上断裂。

因此,在您的索引中,“sl00pm.soo85”作为单个标记进行索引,但“slzq85.soo85”被分为两个标记:“slz85”和“soo85”


标准分析器的设计目的是在文本上工作得最好。单词和句子。对于您正在查看的标识符,您可能会尝试不同的分析器。

谢谢您的回答。你的解释很合理。这对我帮助很大。我可能还有一个关于模式分析器的问题。因为我在生产环境中工作。我想知道使用该分析仪是否存在任何风险。谢谢您的回答。你的解释很合理。这对我帮助很大。我可能还有一个关于模式分析器的问题。因为我在生产环境中工作。我想知道使用该分析仪是否存在任何风险。