python - 在 Elasticsearch 中逐字母搜索

标签 python elasticsearch

我正在将Elasticsearch与python作为客户端一起使用。我想查询公司列表。说公司字段值是

Gokl 
Normn 
Nerth

场景1(使用elasticsearch-dsl python)
s = Search(using=client, index="index-test") \
.query("match", Company="N") 

因此,当我在查询匹配中输入N时,我不会得到Normn或Nerth。我认为这可能是因为基于单词的标记化。

场景2(使用elasticsearch-dsl python)
s = Search(using=client, index="index-test") \
.query("match", Company="Normn") 

当我输入Normn时,我会清楚地获得输出。因此,当我在上述情况1中输入字母n时,如何激活搜索?

最佳答案

我认为您正在寻找前缀搜索。我不知道python语法,但是直接查询如下所示:

GET index-test/_search
{
  "query": {
    "prefix": {
      "company": {
        "value": "N"
      }
    }
  }
}

有关更多信息,请参见here

关于python - 在 Elasticsearch 中逐字母搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436861/

相关文章:

elasticsearch - Elasticsearch:在查询包含 '#'之类的特殊字符的情况下进行精确搜索

python - 努力使用 Docker 卷和 Flask 写入文件

elasticsearch - 在提取管道中使用搜索模板

java - 按名字或姓氏以及特定的相关 ID 搜索?

python尝试除了不同的 Action

elasticsearch - 将Elastic Search结果转换为Laravel 5集合

apache-spark - 巨型Elasticsearch查询

python - 带有第三个变量的 Seaborn 条形图标签条

python - 如何在每个数据框列旁边插入新列

python 函数 for 字典中的循环