elasticsearch ElasticSearch以模糊查询的形式查看多个字段,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch ElasticSearch以模糊查询的形式查看多个字段,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch ElasticSearch以模糊查询的形式查看多个字段

elasticsearch ElasticSearch以模糊查询的形式查看多个字段,elasticsearch,lucene,elasticsearch,Lucene,假设我有一个类似于上面所示的模式。用户要求应用程序显示一些“无用”的内容 如何编写一个查询,通过标题、摘要和标签查找“无用”一词作为模糊搜索?来自文档 此查询之所以有效,是因为它使用的是多匹配查询 模糊性仅适用于基本的匹配和多匹配查询。信息技术 不适用于短语匹配、常用术语或交叉字段 火柴 否则,您必须在一个boolQuery中执行几个fuzzy查询,好的,让它工作起来。当我尝试“使用”而不是“无用”时,我没有得到任何结果。为什么?有没有办法也允许这样做?部分字符串?这取决于分析器、标记过滤器等,

假设我有一个类似于上面所示的模式。用户要求应用程序显示一些“无用”的内容

如何编写一个查询,通过标题、摘要和标签查找“无用”一词作为模糊搜索?

来自文档

此查询之所以有效,是因为它使用的是
多匹配
查询

模糊性仅适用于基本的
匹配
多匹配
查询。信息技术 不适用于短语匹配、常用术语或
交叉字段
火柴


否则,您必须在一个
bool
Query

中执行几个
fuzzy
查询,好的,让它工作起来。当我尝试“使用”而不是“无用”时,我没有得到任何结果。为什么?有没有办法也允许这样做?部分字符串?这取决于分析器、标记过滤器等,您使用它们来索引实体,然后搜索它们的方式。假设您使用的是标准分析器(英语),您的标题将首先标记为“That”、“useeless”、“mazing”和“Title”标记,然后将独立分析每个标记。对于标记“无用”,我认为标准英语分析器存储“无用”(小写)。所以,当你搜索“使用”时,你没有找到任何结果。尝试使用其他分析器,也许您想添加自己的令牌过滤器。我个人更喜欢使用ElasticSearch.GL提供的!我猜你会喜欢边缘NGram标记器和标准标记器的混合。记住,对于令牌过滤器,顺序确实很重要
{
    "title" : "That Uselessly Amazing Title",
    "author" : "Someone you have never heard of",
    "url" : "http://www.theuselessweb.com",
    "summary" : "a collection of useless websites",
    "tag" : ["useless","maybe useful"]
}  
GET /my_index/my_type/_search
{
  "query": {
    "multi_match": {
      "fields":  [ "summary", "title", "tag" ],
      "query":     "useless",
      "fuzziness": "AUTO"
    }
  }
}