2013-05-27 2 views
0

Я не могу получить подсветку с помощью ElasticSearch 0.90 для работы с внутренними полями. Например, вот мой документ:ElasticSearch Выделение внутреннего поля

{ "foo": { 
    "bar": "test bonsai" 
}} 

Запрашиваемый как:

{ "query": { 
    "query_string": { 
     "query": "bonsai" 
    } 
    }, 
    "highlight": { 
    "pre_tags": ["<b>"], 
    "post_tags": ["</b>"], 
    "fields": { 
     "foo.bar": {} 
    } 
    } 
} 

возвращает результат запроса, но без выделения информации. Если я не вложу свое поле (например, {"foo": "test bonsai"} и запросит подсветку для поля "foo" вместо "foo.bar"), тогда все будет работать нормально. Но я не могу заставить его работать с вложенными полями.

Я пробовал разные настройки для полей, включая «foo», «bar», «_all», «foo. » и «». Я также попытался сыграть с отображением, включая определение «term_vector» (with_positions_offsets), «индекс», «анализатор», «сохраненный» и «include_in_all». Ничего не делает трюк.
В документации, как представляется, поддерживается (here, посмотрите на «bio.title», например). Но это не работает, даже если я использую тот же самый запрос.

+1

Он должен работать. Можете ли вы, пожалуйста, разместить информацию о карте? Чтобы получить сопоставление: сделайте GET для http: // localhost: 9200/yourindex/yourtype/_mapping. Чтобы иметь возможность выделить elasticsearch, необходимо получить данные из собственного магазина или из источника. –

ответ

4

Добавление «store»: «да» в сопоставлении решает проблему. (Я ошибочно набрал «сохраненный» вместо «store» в картографии)

+0

Вы отключили поле _source? – javanna

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