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

ElasticSearch词组前缀查询多个字段

东门楚
2023-03-14
问题内容

我是ES的新手,我正在尝试建立一个查询,该查询将对多个字段使用phrase_prefix,因此我不必进行多次搜索。

这是到目前为止我得到的:

{ 
    "query" : { 
        "text" : { 
            "first_name" : { 
                "query" : "Gustavo", 
                "type" : "phrase_prefix" 
            }
        } 
    }
}'

有人知道如何搜索多个字段,例如“ last_name”吗?


问题答案:

您正在使用的文本查询已被弃用(有效重命名),而改为使用match
query
。匹配查询支持单个字段,但是您可以使用multi_match查询,该查询支持完全相同的选项并允许在多个字段中进行搜索。这是一个对您有帮助的示例:

{
    "query" : {
        "multi_match" : {
            "fields" : ["title", "subtitle"],
            "query" : "trying out ela",
            "type" : "phrase_prefix"
        }
    }
}

您可以使用Java API达到以下目的:

QueryBuilders.multiMatchQuery("trying out ela", "title", "subtitle")
    .type(MatchQueryBuilder.Type.PHRASE_PREFIX);


 类似资料:
  • 问题内容: 我有两个ES查询: 问题是第二个查询返回的文档少于第一个查询,尽管我希望第二个查询返回第一个查询的所有记录以及其他内容。我想念什么? 谢谢 问题答案: 这可能是由于将其设置为默认值10 试试这个 该线程将帮助您了解术语的扩展方式。使1000并查看结果。 基本上,您有很多以bo开头的单词,例如 bond,boss, 而且由于 “ x” 按字母顺序排在最后,因此您无法获得期望的结果。 我希

  • 我有一个elasticsearch索引用于存储关于人的信息。为了找到特定的人,我有一些查询,每个查询都单独工作,但是当我使用Bool查询将它们组合起来时,我会得到一个错误。 其中一个查询是对名称的模糊搜索 另一个查询用于搜索在特定日期范围内出生的人 现在我想组合这两个查询。我的bool查询: 虽然当我单独使用它们时,这两个查询都工作得很好,但当把它们组合起来时,我会得到一个错误。我的索引中有名字是

  • 我配置了一个带有两个字段的Elasticsearch索引:“name”和“type”。当我执行下面的查询时,没有得到任何结果,因为“actor”在“type”字段中。 有没有任何方法可以执行一个包含多个单词的查询,并且即使一些单词在“name”字段中而其他单词在“type”字段中也可以得到结果。 谢谢你的帮助!

  • 问题内容: 如何获得Elastic Search仅突出显示导致文档退回的单词? 我有以下索引 假设我已建立索引: 核能是利用核反应释放核能[5]来产生热量,然后最频繁地将其用于汽轮机中以在核电站中发电。该术语包括核裂变,核衰变和核聚变。目前,周期表the系元素的元素的核裂变在人类直接服务中产生了绝大多数核能,其核衰变过程主要以地热能和放射性同位素热电发生器的形式出现在利基用途中。弥补其余的。 并搜

  • 我有一个endpoint,我正在将它代理到ElasticSearchAPI中,以进行简单的用户搜索。 有关这些参数的一些详细信息如下 所有参数都是可选的 昵称可以作为全文搜索进行搜索(即'myUser'将返回'myUsername') 电子邮件必须完全匹配 名称可以搜索为每个令牌的全文搜索(即'john'将返回'John Smith') ElasticSearch调用应将参数集体视为AND'd。

  • 问题内容: 我有一些文档的映射,并且查询agains条件确实失败。我不明白为什么: 例如,我可以对进行词条查询,效果很好 现在 对fwot同样失败 。怎么了? 问题答案: 您需要为此工作。并且您需要为数据重新索引以使上述更改生效。 这是映射更改和一些测试数据的命令的完整列表: