2017-01-18 2 views
3

Я пытаюсь запросить версию .raw поля, которое у меня есть в моем индексе elasticsearch (версия 5.0.0). Имя поля является «регионом» и его отображением является следующее:ElasticSearch: Можно ли запросить поле .raw?

{ 

    "properties": { 
    "region": { 
     "type": "text", "analyzer": "custom_analyzer", 
     "fields": { 
     "raw": { 
       "type": "keyword", "index": "not_analyzed" 
     } 
     } 
    } 
    } 
} 

Обратите внимание, что я первоначально установить отображение области с анализируемой версией и на втором этапе я обновляемое отображение, добавляя необработанную версию поля.

Насколько я понял из documentation и аналогичного question здесь, я могу запросить необработанное поле, чтобы получить документы, чьи регионы точно соответствуют моему запросу. Однако, используя следующий запрос, результаты не возвращаются.

{ 
    "match": { 
     "region.raw": "Northern Ireland" 
    } 
} 

В противоположность этому, используя анализируемую версию моего поля, результаты возвращаются как ожидалось.

{ 
    "match": { 
     "region": "Northern Ireland" 
    } 
} 

Как мне нужно использовать сырое поле, у меня есть следующие вопросы:

  • это правильно так, как я установил мое отображение в поле области?
  • Правильно ли я запрашиваю?

Большое спасибо за помощь.

ответ

3

Нет, вы отвечаете на вопросы. Проблема в том, что вам нужно переиндексировать свои данные, чтобы индексировать новую версию.

+0

Вау, я не могу поверить, как я пропустил это. Это сработало, спасибо! – christinabo

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