elasticsearch中的多字段搜索查询

时间:2017-06-11 15:14:03

标签: java elasticsearch elasticsearch-2.0

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

实施例: 名字:约翰 姓氏:Joshua

搜索条形码字符串以获得更高的结果: 约翰乔 约翰乔斯 约翰乔希 约书亚约翰 约书亚约翰 ...

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

使用下一个查询:

master