python - 在Elasticsearch中查询多字段以获取精确的字符串匹配

标签 python elasticsearch

我在Elasticsearch中有一个带有以下映射的字符串字段

"part_number":{"type":"string"}

由于我想对此字段进行精确字符串搜索,因此我添加了一个额外的字段,即not analyzed
{
  "properties": {
    "part_number": {
      "type": "string",
      "fields": {
        "raw": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  }
}

现在,当我查询part_number.raw字段时,Elasticsearch返回结果。
_search?fields=part_number.raw&q=part_number:abc-000123

但是如何查询part_number.raw字段。我想做类似的事情
_search?fields=part_number.raw&q=part_number.raw:abc-000123

但是此查询返回空匹配。

我正在使用python flex 客户端。
提前致谢。

最佳答案

如果要像这样查询part_number.raw字段,则需要发送exact match查询,即用转义的双引号引起来。

_search?fields=part_number.raw&q=part_number.raw:\"abc-000123\"
                                                  ^           ^
                                                  |           |
                                                add double quotes 

关于python - 在Elasticsearch中查询多字段以获取精确的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34872686/

相关文章:

python - 当我尝试创建虚拟环境时,返回非零退出状态 101 并给出错误

python - 如何使用 guizero 知道谁是 python 井字游戏的赢家

使用同义词、复数和拼写错误的 ElasticSearch/Nest 搜索

elasticsearch - elasticsearch脚本来检查字段是否存在并创建它

python - pytest 与 setup.py 测试

python - 另一个 'Connection reset by peer' 错误

python - GIS 点之间的行驶距离

elasticsearch - "_doc"ElasticSearch 5.6 不接受映射类型名称

elasticsearch - 您可以将 elasticsearch geo_distance 查询(或过滤器)作为 uri 请求执行吗

node.js - 使用 Elastic Search Javascript API 对批量数据建立索引