Шаблон не найден на правильном поле

Так,

Я использовал старый тип multi_field при создании шаблона, как показано ниже.

"field_a": 
{
  "type": "multi_field",
  "fields": 
  {
   "searchable": {
     "index": "analyzed",
     "type": "string"
   },
   "field_a": {
    "index": "not_analyzed",
    "type": "string"
  }
 }
}

Это прекрасно работает, когда я запрашиваю, я могу просто выполнить агрегацию терминов на "field_a" вместо того, чтобы не забыть поставить "field_a.raw" или что-то подобное

Тем не менее, когда я изменяю это на новый синтаксис только с использованием элемента fields, это больше не работает. Когда я выполняю агрегацию терминов с использованием приведенного ниже шаблона, термины разделяются и не приносят первоначальное значение. Поэтому, если бы поле имело значение "тестирование поля", я бы ожидал, что оно вернет "тестирование поля" как один термин, а не "тестирование", "a", "поле" как отдельные термины. Обратите внимание, что это то, что возвращается с использованием оригинального шаблона.

"field_a": 
{
  "type": "string",
  "fields": 
  {
   "searchable": {
    "index": "analyzed",
    "type": "string"
   },
   "field_a": {
    "index": "not_analyzed",
    "type": "string"
   }
  }
 }

Я попытался переместить "index": "not_analyzed" в начальное отображение поля, просто в "type", однако это выдает мне ошибку, "недопустимое поле [index], только поля могут быть указаны внутри полей", при попытке индексации документы.

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

я использую

NEST: 1.7.2 ES: 1.5.2

0 ответов

Другие вопросы по тегам