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

在搜索中给予文档字段不同的优先级

凤财
2023-03-14

我有以下疑问:

'{"query": {"query_string": {"query": "ABC"}'

这将搜索给定索引\type ex中的所有字段。Mytype具有字段1、字段2、字段3这将“ABC”与字段1、字段2、字段3匹配

在3个字段上设置了相等的值,我需要对字段排名进行优先级排序,所以让我们假设优先级应该是field2、field3、field1

如何修改搜索以设置字段排名/优先级?

在我的研究中,我看到了_分数,但这看起来像是用来对每个文档而不是字段进行优先级排序的。

共有2个答案

公羊伟志
2023-03-14

使用提升查询,并根据您想要的优先级对字段进行权重:https://www.elastic.co/guide/en/elasticsearch/guide/current/_boosting_query_clauses.html

梁锋
2023-03-14

以下是更新的Elasticsearch版本的更新。类似这样的查询应根据相应字段的内容提高结果:

GET /_search
{ 
  "query":{
    "simple_query_string" : {
      "query": "ABC",
      "fields": [
        "field2^3",
        "field3^2",
        "field1^1"]
    }
  }  
}

请注意字段2后面的“^3”,这将提高结果,因此如果在所有字段中都找到“ABC”,则它们将按以下顺序排列:

  1. 字段2包含“ABC”的单据
 类似资料:
  • 我有数据: 我有以下疑问: 我想要出现的是: 如何修改搜索以设置字段排名/优先级?

  • 我目前正在使用elasticsearch,并试图从Java后端实现一个查询,该查询不仅按术语而且按字段优先级从索引中查询文档。在我的索引中,我的文档包含一个术语和一个指定类型的字段。 我创建了一个按术语搜索的查询,弹性索引将返回匹配该术语的最相关的结果。我想要创建的功能是创建一个查询,以返回匹配同一项的结果,但按“type”字段的优先级排序。例如,当我输入“flu”时,我希望首先获得类型为“pro

  • 我只需要在文档中的三个字段中搜索一个术语,并根据搜索术语的位置对结果进行排序。例如,找到3个文档:1个在字段2中有搜索词,2个在字段3中有搜索词,3个在字段1中有搜索词。 我想按顺序看:3、1、2。 我以为我可以用助推来做。现在我使用以下方法: 然而,它似乎是,如果我有一个文档与4个词等于搜索词在字段2和另一个文档与1个词在字段1,比后者将有一个较小的分数。 我看到的一个解决方案是为field1和

  • 主要内容:深度优先搜索(简称“深搜”或DFS),广度优先搜索,总结前边介绍了有关图的 4 种存储方式,本节介绍如何对存储的图中的顶点进行遍历。常用的遍历方式有两种: 深度优先搜索和 广度优先搜索。 深度优先搜索(简称“深搜”或DFS) 图 1 无向图 深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过了,所以

  • 本文向大家介绍深度优先搜索,包括了深度优先搜索的使用技巧和注意事项,需要的朋友参考一下 图遍历是按某种系统顺序访问图的所有顶点的问题。遍历图主要有两种方法。 广度优先搜索 深度优先搜索 深度优先搜索(DFS)算法从顶点v开始,然后遍历到之前未访问过的相邻顶点(例如x),并将其标记为“已访问”,然后继续处理x的相邻顶点,依此类推。 如果在任何一个顶点上遇到所有相邻顶点都被访问过,则它将回溯直到找到具

  • 编辑1:我也试过这个,但同样的问题。