elasti c результаты поиска не соответствуют ключу поиска - PullRequest
0 голосов
/ 05 августа 2020

Я проиндексировал имя. И он содержит такие данные, как стул, стулья и т. Д. 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
                    }
                }
            }

Как я могу это исправить?

Спасибо, Шри

1 Ответ

0 голосов
/ 05 августа 2020

Привет, вы можете использовать Prefix Query для своего варианта использования и дайте мне знать, решило ли оно вашу цель или нет. Пожалуйста, go Нажмите здесь, чтобы получить дополнительную информацию

...