【发布时间】:2017-06-30 15:36:08
【问题描述】:
我正在寻找某种方式,我想使用来自 Elastic java api 的 NativeSearchQueryBuilder 对我的索引执行搜索,但我想在搜索时添加以下内容。 索引详情:
- 过滤器类型 EdgeNgram
- 空格分词器
我正在寻找自动完成功能,所以在这里我想在多个字段上应用搜索关键字,但它应该使用前缀来提高性能,我还希望如果结果达到我指定的页面限制,则需要返回结果即使找到足够的结果,也要继续搜索索引。
例如:“albert einstein”在我的索引中,现在如果我搜索“alb”它应该返回结果,或者如果我搜索“ein”它应该返回结果。
NativeSearchQueryBuilder sb = new NativeSearchQueryBuilder()
.withIndices(Constants.ES_INDEX_NAME)
//.withPageable(pageable)
.withSourceFilter(new FetchSourceFilterBuilder().withIncludes("id").build())
.withTypes(Constants.USERS_TYPE)
.withQuery(multiMatchQuery("alb", new String[]{"userFirstName","userLastName","userMobile", "userEmail"}))
.withFilter(boolQuery()
.must(termQuery("userCityName", "Chicago")));
请有人帮我解决这个问题,如何为我的 Multimatch Query builder 添加前缀和限制。
【问题讨论】:
标签: search elasticsearch n-gram