elasticsearch,document,Indexing,elasticsearch,Document" /> elasticsearch,document,Indexing,elasticsearch,Document" />

Indexing 包含哈希值的elasticsearch精确匹配

Indexing 包含哈希值的elasticsearch精确匹配,indexing,elasticsearch,document,Indexing,elasticsearch,Document,我面临弹性搜索的问题,我使用查询从文档中搜索数据。以下是从文档中搜索单个数据的查询 "query": { "filtered": { "query": { "query_string": { "query": "'.$lotnumber.'", "fields": ["LotNumber"] } }

我面临弹性搜索的问题,我使用查询从文档中搜索数据。以下是从文档中搜索单个数据的查询

"query": {
      "filtered": {
     "query": {
         "query_string": {
            "query": "'.$lotnumber.'",
            "fields": ["LotNumber"]
                           }
                      }
            }
     }
   }'

对于简单值来说,它工作得很好,但是如果$lotnumber包含任何介于两者之间的散列值,那么它将显示文档中的所有数据。这里的任何人都可以帮助我解决从具有散列值的文档中搜索精确值的问题???

在这种情况下,我首先想到的是使字段lotnumber不被分析在您的映射中。这应该能奏效

在您的映射中

"album": {
  "type": "string",
  "fields": {
    "raw": {
      "type": "string",
      "index": "not_analyzed"
    }
  }
}

那么您的意思是,如果
$lotNumber
的值为
lot12#34
,那么它将返回整个文档?还是返回更多结果?谢谢你的回复。是的,确实发生了什么。我正在使用查询从索引中搜索,但它返回的是所有数据,而不是一个。Jettro,您是否有任何关于创建未分析字段的演示??我更改了答案并添加了示例