ElasticSearch: preserve_position_increments не работает - PullRequest
0 голосов
/ 29 августа 2018

По документам

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html

preserve_position_increments = false должно сделать последовательные ключевые слова в строке для поиска. Но для меня это не работает. Это ошибка? Шаги для воспроизведения в Кибане:

PUT /example-index/
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "_doc": {
      "properties": {
        "example-suggest-field": {
          "type": "completion",
          "analyzer": "stop",
          "preserve_position_increments": false,
          "max_input_length": 50
        }
      }
    }
  }
}

PUT /example-index/_doc/1
{
  "example-suggest-field": [
        {
            "input": "Nevermind Nirvana",
            "weight" : 10
        }
    ]
}

POST /example-index/_search
{
  "suggest": {
    "bib-suggest" : {
        "prefix" : "nir",
        "completion" : {
            "field" : "example-suggest-field"
        }
    }
  }
}

POST /example-index/_search
{
  "suggest": {
    "bib-suggest" : {
        "prefix" : "nev",
        "completion" : {
            "field" : "example-suggest-field"
        }
    }
  }
}

Если да, я сделаю отчет об ошибке

1 Ответ

0 голосов
/ 29 августа 2018

Это не ошибка, preserve_position_increments полезна, только когда вы удаляете стоп-слова и хотите найти токен, следующий за стоп-словом (то есть найдите Beat и найдите The Beatles).

В вашем случае вам следует вместо этого индексировать ["Nevermind", "Nirvana"], то есть массив токенов.

Если вместо этого вы попытаетесь индексировать "The Nirvana", вы найдете его, выполнив поиск nir

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...