如何在elasticsearch中对多个字段进行模糊查询?
How to fuzzy query against multiple fields in elasticsearch?
这是我的查询:
"query":{
"fuzzy":{
"author":{
"value":query,
"fuzziness":2
},
"career_title":{
"value":query,
"fuzziness":2
}
}
}
这是 Node.js 回调的一部分。 Query
(作为要比较的值插入)在函数的前面设置。
我需要它能够做的是模糊地检查文档的 author
和 career_title
,以及 return 在任一字段中匹配的任何文档.上面的语句从来没有 returns 任何东西,每当我尝试访问它应该创建的对象时,它都会说它是未定义的。我知道我可以写两个查询,一个检查每个字段,然后按分数对结果排序,但我觉得在每个对象中搜索一个字段两次比在每个对象中搜索两个字段一次要慢。
https://www.elastic.co/guide/en/elasticsearch/guide/current/fuzzy-match-query.html
如果您看到这里,在多匹配查询中您可以指定模糊性...
{
"query": {
"multi_match": {
"fields": [ "text", "title" ],
"query": "SURPRIZE ME!",
"fuzziness": "AUTO"
}
}
}
有点像这样..希望这有帮助。
这是我的查询:
"query":{
"fuzzy":{
"author":{
"value":query,
"fuzziness":2
},
"career_title":{
"value":query,
"fuzziness":2
}
}
}
这是 Node.js 回调的一部分。 Query
(作为要比较的值插入)在函数的前面设置。
我需要它能够做的是模糊地检查文档的 author
和 career_title
,以及 return 在任一字段中匹配的任何文档.上面的语句从来没有 returns 任何东西,每当我尝试访问它应该创建的对象时,它都会说它是未定义的。我知道我可以写两个查询,一个检查每个字段,然后按分数对结果排序,但我觉得在每个对象中搜索一个字段两次比在每个对象中搜索两个字段一次要慢。
https://www.elastic.co/guide/en/elasticsearch/guide/current/fuzzy-match-query.html
如果您看到这里,在多匹配查询中您可以指定模糊性...
{
"query": {
"multi_match": {
"fields": [ "text", "title" ],
"query": "SURPRIZE ME!",
"fuzziness": "AUTO"
}
}
}
有点像这样..希望这有帮助。