Окончания слова и словосочетаний

Можно ли как-то настроить анализатор, чтобы при запросе сначала были предложения по окончанию слова, после проблема и ввода второго слова уже предложения по словосочетаниям.

Спасибо!

А можно примеры 1) записей в индексе, 2) запросов и 3) желаемых результатов ?

Сейчас анализатор выглядит таким образом

analyzer:
          autocomplete_analyzer:
            type: custom
            tokenizer: lowercase
            filter: [asciifolding, name_ngram]
          phrase:
            type: custom
            tokenizer: standard
            filter: [word_delimeter_filter, synonym_filter, lowercase, shingle]
          name_analyzer:
            type: custom
            tokenizer: standard
            char_filter: [html_strip]
            filter: [word_delimeter_filter, synonym_filter, lowercase]
        filter:
          name_ngram:
            type: ngram
            min_gram: 3
            max_gram: 5
          ngram:
            type: ngram
            min_gram: 1
            max_gram: 20
          shingle:
            type: shingle
            min_shingle_size: 2
            max_shingle_size: 3
          synonym_filter:
            type: synonym_graph
            synonyms:
              [
                "кр, красный, красное",
                "бел, белое",
                "сух, сухое",
                "п/сл, п/сладкое, полу-сладкое",
                "сах, сахар, ампулы",
                "стол, столовое",
                "сл, сладкое",
                "шт, штук, ном, номер",
                "об, объем",
                "л, литр",
              ]
          word_delimeter_filter:
            type: word_delimiter
            type_table:
              [
                ". => DIGIT",
                "- => ALPHANUM",
                "; => SUBWORD_DELIM",
                " => SUBWORD_DELIM",
              ]

А это маппинг

properties:
            id:
              type: integer
            name:
              type: text
              analyzer: phrase
            description:
              type: text
            article:
              type: text
            photos:
              type: object
              properties:
                path: ~
            country:
              type: object
              properties:
                flag:
                  type: ~
                value:
                  type: ~
            alc:
              type: float
            offers:
              type: object
              properties:
                price: ~
                shop:
                  type: object
                  properties:
                    id:
                      type: integer

Ищем с помощью

{
    "query": {
        "match" : {
            "name" : {
              "query":"пиво",
              "fuzziness": 3
            }
        }
    }
}

В итоге получаем сначала ответы которые содержат "пино", но самая большая проблема которую хотелось бы решить. Сейчас при вводе слова мы получаем объекты товаров, а хотелось бы получать предложения по словам или словосочетаниям.

Например вводим. Вин, а получаем вино, вина, вино красное, вино белое и тд.

Тогда вам надо на suggesters смотреть.

Спасибо за ответ. suggesters пробовал, но не удалось настроить, чтобы рекомендовало больше одного слова. Например я вводил "вен" и оно предлагало варианты "вин", "вино", "вина" и тд. Но если я вводил "вино сух", то ответ был пустой.

У меня будет еще один вопрос, как можно получить самые популярные запросы?

А вы какой тип suggesters пробовали?

Если в completion suggesters - то weight или context, если в обычном поиске, то function score

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.