在ElasticSearch中查询以匹配单词的一部分

用户名

我试图在ElasticSearch中编写一个查询,该查询匹配单词中的连续字符。因此,如果我的索引包含“ John Doe”,则对于以下搜索,我仍然应该看到Elasticsearch返回的“ John Doe”。

  1. 约翰·杜
  2. 约翰·杜
  3. 哦做
  4. 约翰

到目前为止,我已经尝试了以下查询。

{
  "query": {
    "multi_match": {
      "query": "term",
      "operator": "OR",
      "type": "phrase_prefix",
      "max_expansions": 50,
      "fields": [
        "Field1",
        "Field2"
      ]
    }
  }
}

但这也会返回不必要的匹配,例如当我键入john x时我仍然会得到“ John Doe”。

用户名

这对我有用。代替ngram,将数据索引为关键字。并使用通配符正则表达式匹配来匹配单词。

 "query": {
          "bool": {
              "should": [
                {
                  "wildcard": { "Field1": "*" + term + "*" }
                },
                {
                  "wildcard": { "Field2": "*" + term + "*" }
                }
              ],
              "minimum_should_match": 1
          }
      }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

停止正则表达式匹配单词中单词的一部分

在Elasticsearch中突出显示单词的一部分

在 Prolog 中匹配 DFG 的一部分

如何使用ElasticSearch搜索单词的一部分

如何在XPath查询的一部分中匹配两个元素之一

如何在MarkLogic中将子元素包含为单词查询的一部分

用Java语言替换cyryllic中的单词(不是单词的一部分)

动态删除单词的一部分

整个单词的一部分怎么得到?

jQuery搜索单词的一部分

单词拆分是POSIX的一部分吗?

全文搜索找到单词的一部分

SQL - 试图判断查询的哪一部分与“OR”语句匹配

LINQ查询以匹配字符串的一部分(分数)

检查文档是否是 Elasticsearch 查询的一部分?

PHP中的Regex:如何在最后一部分URL中获取单词?

提取与图案匹配的线的一部分

如何匹配数组中数组中的特定单词,匹配后如何用PHP提取数组的另一部分?

使用 'in' 来检查单词是否是列表中项目的一部分

强制在一部分单词中扩展全局别名

Sed - 替换行的一部分 - 引号中的单词

仅当单词的一部分不在列表中时才追加

在python中替换第一部分字符串的单词

在Microsoft Word中查找/替换以仅格式化单词的一部分

VB Excel中替换单元格循环中的单词的一部分

在访问数据库中搜索单词的一部分

如何在熊猫中取一列的一部分与另一列的一部分匹配?

公式查询的最后一部分

卡在linq查询的一部分上