根据多匹配查询(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)的文档,可以通过前缀搜索多个属性。你所要做的就是设置参数"输入" to" phrase_prefix"。不幸的是,我在Elastic Java Api(https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.6/multimatch.html)中找不到该选项。我试过像:
QueryBuilder builder = QueryBuilders
.multiMatchQuery("query", "property1", "property2");
但无法找到设置的位置"键入"参数。我知道纯粹的休息是解决方案,但我仅限于java api。
我正在使用org.elasticsearch.client:transport。的版本5.2.2。
答案 0 :(得分:6)
您必须将.type(MatchQueryBuilder.Type.PHRASE_PREFIX)
添加到您的构建器。
示例:
QueryBuilder builder = QueryBuilders
.multiMatchQuery("query", "property1", "property2")
.type(MatchQuery.Type.PHRASE_PREFIX)