【问题标题】:Elastic Search Using a wildcard within query_string exact search弹性搜索 在 query_string 中使用通配符精确搜索
【发布时间】:2014-10-27 19:39:00
【问题描述】:

在尝试使用 query_string 将通配符输入和弹性搜索精确短语搜索时遇到问题。

希望允许返回的结果是所有变体的精确短语。即“Coors Brewing”、“Coors Brewery”、“Coors Brews”等。

POST _search
{
"query": {
  "query_string": {
    "default_operator": "AND", 
    "analyze_wildcard": true,
    "query": "\"coors brew*\""
  }
}
}

我不喜欢这种方法,但想搜索文档的大部分内容以找到与 1 或 2 个字段匹配的内容。

【问题讨论】:

  • 请记住,由于查询分析,您的查询将匹配 "Coors Something_I_Didn't_Really_Wanted_To_Be_Matched Brewery"。如果我没记错的话,你应该使用一些花哨的分析器来处理 " 字符。

标签: elasticsearch query-string exact-match


【解决方案1】:

这似乎是 match_phrase_prefix 查询 (documentation) 的完美用例:您尝试过吗?

如果您需要同时对多个字段进行查询,请查看multi_match 类型为phrase_prefix (documentation) 的查询。

与基于通配符的query_string 查询的不同之处在于匹配查询不被解析并且不支持query_string syntax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2018-08-02
    • 2017-01-09
    • 2020-03-06
    • 2015-08-02
    • 1970-01-01
    相关资源
    最近更新 更多