当前位置: 首页 > 面试题库 >

带有模糊性的多个字段上的ElasticSearch multi_match查询

郎羽
2023-03-14
问题内容

如何为模糊匹配查询添加模糊性?因此,如果有人要搜索“棒球”,它仍然会找到“棒球”文章。目前,我的查询如下所示:

POST /newspaper/articles/_search
{
    "query": {
        "function_score": {
            "query": {
                "multi_match": {
                    "query": "baseball",
                    "type": "phrase",
                    "fields": [
                        "subject^3", 
                        "section^2.5", 
                        "article^2", 
                        "tags^1.5",
                        "notes^1"
                    ]
                }
            }
        }
    }
}

我正在寻找的一种选择是执行类似的操作,只是不知道这是否是最佳选择。保持基于评分的排序很重要:

   "query" : { 
      "query_string" : { 
         "query" : "subject:basball^3 section:basball^2.5 article:basball^2", 
         "fuzzy_prefix_length" : 1 
      } 
   }

有什么建议吗?


问题答案:

要将模糊性添加到多查询中,您需要按以下说明添加模糊性属性:

{
    "query": {
        "function_score": {
            "query": {
                "multi_match": {
                    "query": "baseball",
                    "type": "phrase",
                    "fields": [
                        "subject^3", 
                        "section^2.5", 
                        "article^2", 
                        "tags^1.5",
                        "notes^1"
                    ],
                    "fuzziness" : "AUTO",
                    "prefix_length" : 2

                }
            }
        }
    }
}

请注意,文档中的 prefix_length 解释为:

不会被“模糊化”的初始字符数。这有助于减少必须检查的术语数量。预设为0。

要检查 模糊性
的可能值,请访问ES文档。



 类似资料:
  • 问题: 我已经在lucene索引中索引了NGA Geonames地名录。我需要模糊查询一个字段(地名),但将查询限制为具有特定国家代码的记录。下面是我正在运行的一个示例查询 我没有使用SOLR,我已经做了大量的研究和尝试,但我没有明确的答案,可能是我的速度太慢了。 我想对印度进行模糊搜索,但我只想要与“in”(国家代码)完全匹配的记录

  • 我知道Elasticsearch不支持查询中类型的模糊性。我在使用Elasticsearch API时遇到了一段非常困难的时间,因此我发现构建一个类似的查询具有挑战性,该查询使用模糊字符串匹配来搜索多个文档字段。 我有一个名为的索引,它包含各种字段,如、、、、等。我想能够查询一个字符串像“John Doe论文标题2015期刊名称”。是完美的类型,但它不支持对我的应用程序至关重要的模糊性。 有谁能提

  • 本文向大家介绍thinkPHP实现多字段模糊匹配查询的方法,包括了thinkPHP实现多字段模糊匹配查询的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP实现多字段模糊匹配查询的方法。分享给大家供大家参考,具体如下: 引言:有时候查询要匹配多个字段。比如查询地址,地址是由多个字段组成的。有省、市、区等等,以及详细地址。这个时候如何查询呢? 实现不同字段相同的查询条件 用

  • 本文向大家介绍Mybatis多个字段模糊匹配同一个值的案例,包括了Mybatis多个字段模糊匹配同一个值的案例的使用技巧和注意事项,需要的朋友参考一下 需求: 搜索框中可输入手机号,姓名,地址查询,后台需要对一个框中的多个字段做匹配查询。 搜索 可以在sql语句中做拼接条件查询: 补充知识:在Mybatis xml使用mysql数据库进行多字段模糊查询(Like) 在mysql中使用Like进行一

  • Elasticsearch允许通过其“more like this”(MLT)查询搜索类似文档。我正试图更好地理解和调整查询,以便更好地找到类似的文档。 在试验它时,我发现具有多个字段的单个MLT查询的结果与具有每个字段的多个MLT查询的布尔值产生不同的结果。以下样本(截断): 具有多个字段的单个MLT查询 具有单个字段的多个MLT查询 为什么会发生这种情况? 我知道MLT查询会将单个查询中列出的

  • 我在谷歌周围看了一段时间,但没有工作。有谁能帮我解决这个问题吗?