我正在将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/