【发布时间】:2018-09-19 09:21:00
【问题描述】:
我正在使用 ElasticSearch 中的 java API 搜索一些关键字,并且我的搜索关键字得到了一些结果。但是我的确切搜索关键字没有出现在结果的顶部。
例如:Keyword : AB-7000-8003
我的搜索关键字得到以下响应。
[
{
"code": "AB-7000-8003-W",
"id": "11569",
},
{
"code": "AB-7000-8003",
"id": "11573",
},
{
"code": "AB-7000-8003-WK",
"id": "11565",
},
{
"code": "AB-7000-8003S",
"id": "11557",
},
{
"code": "AB-7000-8003-k",
"id": "11569",
}
]
我的预期结果如下所示,按升序排列,我的确切搜索关键字应该在结果的顶部:
[
{
"code": "AB-7000-8003",
"id": "11573",
},
{
"code": "AB-7000-8003-k",
"id": "11569",
},
{
"code": "AB-7000-8003S",
"id": "11557",
},
{
"code": "AB-7000-8003-W",
"id": "11569",
},
{
"code": "AB-7000-8003-WK",
"id": "11565",
}
]
请在下面找到我的代码:
SearchRequest searchRequest = new SearchRequest(PRODUCTS_INDEX);
searchRequest.types(TYPE);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
QueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery("product_code", code));
searchSourceBuilder.query(qb);
searchSourceBuilder.size(8000);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = null;
try {
searchResponse = SearchEngineClient.getInstance().search(searchRequest);
} catch (IOException e) {
logger.log(Level.SEVERE, e.getMessage(), e);
ExceptionUtils.handle(e);
}
我使用的是 ElasticSearch 6.2.3 版本。
【问题讨论】:
-
我确实认为 AB-7000-8003S 应该在列表中排在第二位,然后是 AB-7000-8003-k 第三位: )
标签: java elasticsearch elastic-stack