Elasticsearch для установки индекса "нет", какой тип использовать, ключевое слово или текст? - PullRequest
0 голосов
/ 03 февраля 2019

Elasticsearch для установки "index": "no", с "index": false, что мы должны использовать для "type", "ключевое слово" ИЛИ "text" Будет ли какая-либо разница?

Потому что какполе не проиндексировано Я не думаю, что будет какая-либо разница?

1 Ответ

0 голосов
/ 04 февраля 2019

Установка опции index на no в Elasticsearch 2.x или false в Elasticsearch> 5.x не создаст инвертированный индекс для этого поля, что означает, что вы не можете выполнять поиск илифильтрация по нему.Но вы можете выполнить сортировку и агрегирование, создав представление для данных с именем fielddata, используя doc_values ​​, где значение type поля имеет значение.

Я создал my_index с помощью text_or_keyword_field и запустил поисковый запрос, установив для поля type значение text один раз и значение keyword в следующий раз.

PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "text_or_keyword_field": {
          "type": "keyword",
          "index": "false"
        }
      }
    }
  }
}

Elasticsearch поднял search_phase_execution_exception с указанием ожидаемой причины:

{
  "error": {
    "root_cause": [
      {
        "type": "query_shard_exception",
        "reason": "failed to create query: {\n  \"match\" : {\n    \"text_or_keyword_field\" : {\n      \"query\" : \"brown fox\",\n      \"operator\" : \"OR\",\n      \"prefix_length\" : 0,\n      \"max_expansions\" : 50,\n      \"fuzzy_transpositions\" : true,\n      \"lenient\" : false,\n      \"zero_terms_query\" : \"NONE\",\n      \"auto_generate_synonyms_phrase_query\" : true,\n      \"boost\" : 1.0\n    }\n  }\n}",
        "index_uuid": "hz4Vq6mPRaCc9HSxB-MEYg",
        "index": "my_index"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "my_index",
        "node": "LvCoGAkyTbiVIeyF7UtXTw",
        "reason": {
          "type": "query_shard_exception",
          "reason": "failed to create query: {\n  \"match\" : {\n    \"text_or_keyword_field\" : {\n      \"query\" : \"brown fox\",\n      \"operator\" : \"OR\",\n      \"prefix_length\" : 0,\n      \"max_expansions\" : 50,\n      \"fuzzy_transpositions\" : true,\n      \"lenient\" : false,\n      \"zero_terms_query\" : \"NONE\",\n      \"auto_generate_synonyms_phrase_query\" : true,\n      \"boost\" : 1.0\n    }\n  }\n}",
          "index_uuid": "hz4Vq6mPRaCc9HSxB-MEYg",
          "index": "my_index",
          "caused_by": {
            "type": "illegal_argument_exception",
            "reason": "Cannot search on field [text_or_keyword_field] since it is not indexed."
          }
        }
      }
    ]
  },
  "status": 400
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...