如何对elasticsearch中的多个字段进行模糊查询?

Ian*_*ane 3 mongoose mongodb node.js elasticsearch mongoosastic

这是我的查询:

"query":{
    "fuzzy":{
        "author":{
            "value":query,
            "fuzziness":2
        },
        "career_title":{
            "value":query,
            "fuzziness":2
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是 Node.js 中回调的一部分。 Query(作为要比较的值插入)在函数的前面设置。

我需要它能够做的是模糊地检查文档的authorcareer_title,并返回在任一字段中匹配的任何文档。上面的语句永远不会返回任何内容,每当我尝试访问它应该创建的对象时,它都会说它是未定义的。我知道我可以编写两个查询,一个检查每个字段,然后按分数对结果进行排序,但我觉得在每个对象中搜索一个字段两次会比在每个对象中搜索两个字段一次慢。

Ani*_*odi 6

https://www.elastic.co/guide/en/elasticsearch/guide/current/fuzzy-match-query.html

如果您看到这里,在多重匹配查询中您可以指定模糊度......

{
  "query": {
    "multi_match": {
      "fields":  [ "text", "title" ],
      "query":     "SURPRIZE ME!",
      "fuzziness": "AUTO"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有点像这样..希望这有帮助。