首页 > 解决方案 > 包含 Elasticsearch 中的查询或部分匹配

问题描述

我正在寻找一个单词“amend”,它可能在数据中以“amending”、“amendment”甚至“*amend”的形式出现。搜索此类单词的最佳方法是什么?我知道通配符可以实现这一点,但由于我的代码的其他部分,我被限制不使用它。有哪些不同的方法可以提供更好的搜索性能?

标签: elasticsearch

解决方案


您可以使用elasticsearch 的query_string功能来实现这一点。假设您使用 default standard analyzer

{  
   "query":{  
      "query_string":{  
         "default_field":"Customer",
         "query":"*Jo*"
      }
   }
} 

您可以添加多个字段,如下面的查询所示

{  
   "query":{  
      "query_string":{  
         "fields":[  
            "Customer",
            "Name"
         ],
         "query":"*Jo*"
      }
   }
}

推荐阅读