Elasticsearch: что содержит мой индекс: документы или позиции? - PullRequest
0 голосов
/ 03 ноября 2018

Я создал индекс ES, используя следующую команду:

curl -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"settings" :{"number_of_shards" : 10, "number_of_replicas" : 0, "analysis":{"analyzer": {"my_analyzer": {"type": "custom", "tokenizer":"whitespace","filter":["lowercase","porter_stem"],"stopwords":[...stopwords here ...]}}}}, "mappings" : {"html" : {"properties" : "head" : { "type" : "text", "analyzer": "my_analyzer" }, "body" : { "type" : "text", "analyzer": "my_analyzer"}}}}}' localhost:9200/docs

Я читаю здесь , что:

В анализируемых строковых полях по умолчанию используются позиции, а во всех остальных полях по умолчанию используются документы.

Поскольку мои поля имеют тип text, они считаются строковыми полями?

Моя главная проблема - как узнать, что содержит мой индекс (документы или позиции?) Для каждого поля! Я использовал команду \docs\_settings для получения настроек индекса, но не получил полезного ответа?

Есть какие-нибудь подсказки?

EDIT

В дополнение к ответу @ibexit, приведенному ниже, я проверил это практически, выполнив запросы на фразы по индексам ES.

1 Ответ

0 голосов
/ 04 ноября 2018

Вы определили поля как текст, не указав index_options в вашем отображении. В этом случае будет применяться значение по умолчанию для текстовых полей (index_options = позиции). Обратный индекс теперь будет содержать номер документа, частоты терминов и положения терминов (или порядок) для текстовых полей.

Для получения более подробной информации об инвертированных индексах, пожалуйста, посмотрите https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up или https://youtu.be/x37B_lCi_gc Это должно стать хорошей отправной точкой для ваших исследований.

ура!

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