Выполнить stemming для всех слов в ключевом слове - PullRequest
0 голосов
/ 06 ноября 2019

Предположим, у меня есть словарь, который содержит слова: complicated qualification, complicated people, complicated calculation, complicated.

Если кто-то ищет по запросу complicated qualification process. Я хотел бы предоставить совпадение только для словарных слов complicated qualification и complicated, которые все являются «под-ключевыми словами». Чтобы сделать поиск немного менее строгим, желательно выполнить поиск по запросу, что приведет к поиску complic qualif.

Теперь я разделен на анализатор (keyword_stemmer) и search_analyzer (* 1016). *). 1. keyword_stemmer должен выполнять определение всех слов, например, сохранить complicated qualification как complic qualif, однако я пока не могу использовать каждое слово и только целое, в результате чего получается ключевое слово complicated qualif.
2. Анализатор поиска представляет собой многоканальный и будет разбит на complic, qualif и complic qualif.

Как вы можете видеть, это приведет к совпадению только на complic, но не наcomplic qualif. Как я могу сделать анализаторы такими, чтобы они также приводили к сложным основанным словам?

Текущие анализаторы:

{
  "analysis": {
    "filter": {
      "dutch_stemmer": {
        "type": "stemmer",
        "language": "dutch"
      },
      "multiple_shingle": {
        "max_shingle_size": "5",
        "type": "shingle"
      }
    },
    "char_filter": {
      "allowOnlyChar": {
        "pattern": "[^A-Za-z]",
        "type": "pattern_replace",
        "replacement": " "
      }
    },
    "analyzer": {
      "keyword_stemmer": {
        "filter": [
          "asciifolding",
          "lowercase",
          "dutch_stemmer"
        ],
        "char_filter": [
          "allowOnlyChar"
        ],
        "type": "custom",
        "tokenizer": "keyword"
      },
      "multi_shingle": {
        "filter": [
          "asciifolding",
          "lowercase",
          "dutch_stemmer",
          "multiple_shingle"
        ],
        "type": "custom",
        "tokenizer": "standard"
      }
    }
  }
}
...