我的弹性搜索索引中有一个Author文档。我有一个用户输入来将新作者放入索引。
在存储这些新作者之前,我想检查作者是否已经存在于索引中,即使它首次拼写错误。
我正在进行模糊搜索,这似乎是这样做的方式。 这是我正在做的请求:
curl 'http://localhost:9200/my_index/Author/_search?pretty' -d '{
"query":
{
"fuzzy": {
"name": {
"value": "put a name here"
}
}
}
}'
鉴于我有一位名叫“Daniel Bluefield”的作者。 当我搜索“Danel”时,上述请求很有效。 但是如果我搜索全名,它就不会返回任何内容,它不会返回任何结果。
如何申请“Danel Bluefld”会返回一些结果?
答案 0 :(得分:0)
将其更改为fuzzy_like_this_field,您可能需要调整fuzziness参数
curl 'http://localhost:9200/my_index/Author/_search?pretty' -d '{
"query":
{
"fuzzy_like_this_field" : {
"name" : {
"like_text" : "Danel Bluefld",
"max_query_terms" : 10
}
}
}
}'
答案 1 :(得分:0)
Mihai运作良好,但是,我设法让它以另一种方式运作:
{
"min_score": 3,
"query": {
"match": {
"name": {
"query": "danil greenfld",
"fuzziness": "AUTO"
}
}
}
}
但我真的看不出这两个问题之间的区别......