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

elasticsearch中的多字段搜索查询

锺离声
2023-03-14

我需要在我的应用程序中添加搜索栏。搜索将按名和姓进行搜索。我不知道如何编写elastcsearch查询。名字和姓氏是两个分开的字段。我是个新手。

例:名:约翰,姓:约书亚

搜索栏字符串为上层结果:约翰·乔·约翰·乔·约翰·乔·乔·约翰·约书亚·约翰·约书亚·乔...

共有1个答案

公孙志
2023-03-14

可以在搜索中使用前缀查询。匹配具有包含指定前缀(未分析)的术语的字段的文档。前缀查询映射到Lucene前缀查询。查询结构如下:

{
    "query": {
        "bool": {
            "must": [
                {
                    "prefix": {
                        "firstname": "jo"
                    }
                },
                {
                    "match": {
                        "lastname": "jo"
                    }
                }
            ]
        }
    }
}

不要尝试通配符,因为通配符在此搜索中无效

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

  • 问题内容: 我正在使用最新版本的elasticsearch-php以及最新版本的MongoDB和ElasticSearch。 我需要对可以包含一个或多个值的多个字段进行搜索。例: country_code应为NL,BE或DE,并且类别应包含AA01,BB01,CC02或ZZ11 我以为我会按照以下方式解决它(PHP): 但是结果甚至还不能接近我期望返回的数据。 有时 $ countries 和/或

  • 我试图在ElasticSearch中运行类似的字段查询:

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

  • 问题内容: 我正在尝试在ElasticSearch中运行类似的字段查询: 意思是我正在尝试查找所有文档,其中产品名称在这种情况下是’milk’的子字符串。 我该怎么做? 问题答案: 我会使用一个使用ngrams的自定义分析器。首先创建一个像这样的索引: 然后,您可以索引一些数据: 最后,您可以像这样搜索: 然后您将获得前两个文档,

  • 如何获取搜索查询匹配的文档中的所有字段?关于<code>字段</code>的ES文档指出,使用<code>*</code>,可以获得所有字段:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html 有了这个文档和这个查询,我得到了结果,但没有返回任何字段: 放置