Elasticsearch как установить fielddata: true для всех текстовых полей - PullRequest
0 голосов
/ 19 декабря 2018

Может кто-нибудь сказать мне, пожалуйста, как установить fielddata true для всех текстовых полей.Мне нужно отсортировать по ним, и это выдает ошибку Fielddata по умолчанию отключен в текстовых полях Вот фрагмент карты, где улица или город - текстовые поля, которые выдают мне эту ошибку.

"address": {
                    "properties": {
                        "city": {
                            "type": "text",
                            "boost": 5,
                            "analyzer": "suggestion"
                        },
                        "zip": {
                            "type": "text"
                        },
                        "street": {
                            "type": "text",
                            "boost": 7,
                            "analyzer": "suggestion"
                        }

1 Ответ

0 голосов
/ 19 декабря 2018

вам нужно обновить отображение вашего поля, для этой цели вы можете использовать API отображения put изasticsearch.

PUT yourindexName/_mapping/_doc
{
  "properties": {
     "yourfield": { 
       "type":     "text",
       "fielddata": true
     }
  }
}

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

Я предлагаю вам пройти по этой ссылке, объясняя причину этого подробно. Поле данных эластичного поиска

В качестве альтернативы вы можете использовать приведенное ниже сопоставление для своих полей:

 "yourfield": { 
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword"
      }
    }
  }

Вместо простого текста ... я надеюсь, что оно будет служить вашим целям.

Удачного кодирования:)

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