Я ищу ключевое слово, используя API Java в ElasticSearch, и получаю несколько результатов для моего ключевого слова поиска.Но мое точное поисковое ключевое слово не входит в начало результатов.
Например: 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.