gpt4 book ai didi

elasticsearch - 如何容忍Elasticsearch的错字?

转载 作者:行者123 更新时间:2023-12-02 22:32:52 25 4
gpt4 key购买 nike

我正在使用query_string,并且我希望我的搜索能够容忍错别字。在下面的查询中,我键入了The Gren Mile,但是没有返回任何结果:

curl -XPOST 127.0.0.1:9200/test
curl -XPOST 127.0.0.1:9200/test/movies -d '{"title": "The Green Mile"}'
curl -XPOST 127.0.0.1:9200/test/_refresh
curl -XPOST 127.0.0.1:9200/test/movies/_search -d '{
"query": {
"query_string": {
"query": "The Gren Mile",
"default_operator": "AND"
}
}
}'

它说在 Elasticsearch docs中,默认情况下 fuzzinessAUTO(随着单词的变大,它可以容忍更大的错字),所以我不知道为什么它不起作用。我尝试手动设置 fuzziness: 2,但是它也不起作用。这个选项会做我想不到的事情吗?

最佳答案

对于模糊性参数为何不起作用,我没有任何答案-它对我也不起作用,可能这是一个错误?

但是,将模糊运算符~直接放在字符串中可以起作用:

curl -XPOST 127.0.0.1:9200/test/movies/_search?pretty -d '{
"query": {
"query_string": {
"query": "The Gren~ Mile",
"default_operator": "AND"
}
}
}'

返回记录:
{
"took" : 6,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.263573,
"hits" : [ {
"_index" : "test",
"_type" : "movies",
"_id" : "AUxq8KE1EKExB5CrkB_W",
"_score" : 0.263573,
"_source":{"title": "The Green Mile"}
} ]
}
}

匹配查询

在匹配查询中使用模糊性是可行的。如果将query_string与匹配查询结合(以形成单个查询),或者如果用户的原始搜索未返回结果,则进行匹配查询。
  "query": {
"match": {
"title": {
"query": "The Gren Mile",
"operator" : "and",
"fuzziness": 2
}
}
}

关于elasticsearch - 如何容忍Elasticsearch的错字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com