当前位置: 首页 > 知识库问答 >
问题:

在查询字符串精确搜索中使用通配符进行弹性搜索

戚浩淼
2023-03-14

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

希望能够返回结果,这将是所有变体的精确短语。i、 e.“库尔斯酿酒厂”、“库尔斯酿酒厂”、“库尔斯酿酒厂”等。

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

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

共有1个答案

樊琦
2023-03-14

这似乎是match\u phrase\u prefixquery(文档)的完美用例:您尝试过吗?

如果需要同时对多个字段进行查询,请查看multi_matchquerys withphrase_prefix类型(文档)。

与基于wilcard的query_stringquery不同的是,匹配查询没有被解析,尽管不支持query_string语法。

 类似资料:
  • 我希望与字段中的字符串完全匹配,然后返回一天,提取所有此类记录。我所使用的json似乎也与简单的单词相匹配。我不确定我哪里出了问题。我需要向这个查询JSON添加吗?我目前拥有的JSON如下所示:

  • 实现此功能的推荐方法是什么?注意,我使用的是查询字符串查询。

  • 由于已经有很多关于连字符的问题,我已经尝试了以下解决方案: 使用字符筛选器:ElasticSearch-在名称中使用连字符进行搜索。 所以我做了这个映射: 所以char筛选器似乎没有在搜索字符串上执行?我该怎么做才能让它起作用?

  • 因此,默认情况下,field1是通过使用默认分析器进行弹性搜索来分析的。 我在下面搜索短语查询,但它没有返回任何结果。 因此弹性搜索短语查询不适合于OR运算符。知道为什么它不起作用吗?它是弹性搜索的一个限制,因为文本中有特殊的字符连字符(-)?

  • 我正在尝试学习与php composer包的帮助。我有一个,其名称为,其中包含、、、字段。我想有基于以上字段的过滤器,它应该在操作符。我当前的查询代码是: 我的问题是: > 我无法获取数据。但是如果我执行下面的代码: 我在运算符中获取值,但需要在其中包含操作。

  • 问题内容: 可以说我有一个清单 如何让用户进行通配符搜索? 搜索词:“ th_s” 将返回“ this” 问题答案: 正则表达式可能是解决此问题的最简单方法: