Я проиндексировал имя. И он содержит такие данные, как стул, стулья и т. Д. c.
, когда я пытаюсь выполнить поиск с помощью «ча», он не возвращает ни стул, ни стулья. Он возвращает «мохнатые коврики» там, где я ожидаю документы с креслом.
ниже мой код:
BoolQueryBuilder rootBoolQuery = new BoolQueryBuilder();
MultiMatchQueryBuilder multiMatchQueryBuilder = multiMatchQuery(searchKey).field(
SEARCH_CATEGORY_NAME_FIELD);
multiMatchQueryBuilder.fuzziness(Fuzziness.TWO);
multiMatchQueryBuilder.type(Type.BEST_FIELDS);
rootBoolQuery.must(multiMatchQueryBuilder);
поисковый запрос:
{"query":{"bool":{"must":[{"multi_match":{"query":"cha","fields":["categoryname^1.0"],"type":"best_fields","operator":"OR","slop":0,"fuzziness":"2","prefix_length":0,"max_expansions":50,"zero_terms_query":"NONE","auto_generate_synonyms_phrase_query":true,"fuzzy_transpositions":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"sort":[{"productcount":{"order":"desc"}}]}
поисковый ответ:
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": null,
"hits": [
{
"_index": "category",
"_type": "_doc",
"_id": "331869",
"_score": null,
"_source": {
"rootcategory": "Home",
"categorycode": "Shag_Rugs",
"categoryname": " Shag Rugs",
"categoryid": 331869,
"parentcategory": " Rugs",
"productcount": 59
},
"sort": [
59
]
}
]
}
}
Сопоставление:
"categoryname": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
Как я могу это исправить?
Спасибо, Шри