2016-03-23 10 views
0

После обновления ElasticSearch 2 Я не более способен отображать ContextSuggester для различных типов:Mapping для контекста Suggester неудачу в ElasticSearch 2

PUT /test/foo/_mapping 
{ 
    "properties": { 
    "suggest": { 
     "type": "completion", 
     "context": { 
     "type": { 
      "type": "category", 
      "path": "_type", 
      "default": [ 
      "foo" 
      ] 
     } 
     } 
    } 
    } 
} 

PUT /test/bar/_mapping 
{ 
    "properties": { 
    "suggest": { 
     "type": "completion", 
     "context": { 
     "type": { 
      "type": "category", 
      "path": "_type", 
      "default": [ 
      "bar" 
      ] 
     } 
     } 
    } 
    } 
} 

Положив карту для второго типа заканчивается за исключением следующего:

Mapper для [предложить] конфликтует с существующим отображение в других типах: [картостроитель [предложить] имеет разные [context_mapping] значения]

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

Испытано версия ES: 2.2.1

ответ

1

У вас есть поле конфликта.

Mapping - field conflicts

типы картирования используются для группирования полей, но поля в каждом типа отображения не являются независимыми друг от друга. Поля с:

  • то же самое имя
  • в том же индексе
  • в различных типов отображения

карты в том же поле внутренне, и должны иметь одинаковое отображение. Если поле title существует как в типах отображения user, так и blogpost, поля title должны иметь одинаковое сопоставление в каждом типе. Только исключения из этого правила являются copy_to, dynamic, enabled, ignore_above, include_in_all и properties параметры, которые могут имеют различные параметры в поле зрения.

Либо создайте отдельный индекс, либо переименуйте поле для другого типа.

Смежные вопросы