elasticsearch 发现页面-can’;无法在搜索栏中找到,但可以在筛选器中找到
我有7.5.0麋鹿堆栈。看到非常奇怪的情况。我有带有“消息”字段的索引,例如,其中的这一行:elasticsearch 发现页面-can’;无法在搜索栏中找到,但可以在筛选器中找到,elasticsearch,kibana,elasticsearch,Kibana,我有7.5.0麋鹿堆栈。看到非常奇怪的情况。我有带有“消息”字段的索引,例如,其中的这一行: [comgId:1773182151883136235;expired:false;delivered:true;secured:false;querySecured:true] 当我查询“message:1773182151883136235”时,它什么也找不到(从Kibana的发现页面) 但如果我在搜索栏“message is 1773182151883136235”下添加过滤器: 橡皮筋找到了那
[comgId:1773182151883136235;expired:false;delivered:true;secured:false;querySecured:true]
当我查询“message:1773182151883136235”时,它什么也找不到(从Kibana的发现页面)
但如果我在搜索栏“message is 1773182151883136235”下添加过滤器:
橡皮筋找到了那根绳子。为什么
当检查这两个查询时,我看到搜索参数在“query”->“bool”->“filter”:数组中传递。
但当我在搜索栏中进行查询时-/index/\u搜索请求有:
"bool": {
"should": [
{
"match": {
"message": 1773182151883136300
}
}
],
"minimum_should_match": 1
}
并且什么也找不到,但添加了过滤器-/index/\u后,搜索请求具有:
{
"match_phrase": {
"message": {
"query": "1773182151883136235"
}
}
},
搜索成功
为了让用户更方便地在熟悉的搜索栏中编写搜索查询,请改为创建过滤器。为什么会发生这种情况-这是错误还是正常行为
message
字段,我假设我们讨论的是comgId
comgId:1773182151883136235
找不到任何内容,但将其更改为comgId:1773182151883136235
(请注意双引号)会按预期工作PS:切换到带双引号和不带双引号的Lucene查询语法都有效。请共享您的映射Shere正在映射消息字段:
“message”:{“type”:“text”,“fields”:{“keyword”:{“type”:“keyword”,“忽略上面的“:256}},
1。我有一个类型为“text”的“message”字段,该字段有字符串“[comgId:1773182151883136235;过期:……”,因此该字符串由标记“comgId”、“1773182151883136235”、“expited”拆分,…2.是的,你是对的,双引号有帮助,一切都如预期的那样。你能告诉我在哪里可以更详细地了解这种行为吗?我不确定这些文档是否完美,但可能是最好的起点;它有一个关于短语的引号字符串的部分,但实际上并不是不同数据类型的处理。
{
"match_phrase": {
"message": {
"query": "1773182151883136235"
}
}
},