ElasticSearch получают погашения подчеркнутых отрывков

Действительно ли возможно получить позиции символа каждого подчеркнутого фрагмента? Я должен соответствовать подчеркнутому тексту назад к исходному документу, и имеющий позиции символа позволил бы.

Например:

curl "localhost:9200/twitter/tweet/_search?pretty=true" -d '{
    "query": {
        "query_string": {
            "query": "foo"
        }
    },
    "highlight": {
        "fields": {
            "message": {"number_of_fragments": 20}
        }
    }    
}'

прибыль этот highglight:

"highlight" : {
    "message" : [ "some foo text" ]
 }

Если боевое распоряжение в подобранном документе было:

"Here is some foo text"

есть ли способ знать, что отрывок начинается в случайной работе 8 и заканчивает в случайной работе 21 из подобранной области?

Знание погашения начала/конца подобранного символа было бы хорошо для меня также - возможно, там, путь состоит в том, чтобы получить доступ к той информации, используя script_fields? (Это вопрос шоу, как получить символы, но не погашения).

Полевое "сообщение" имеет:

"term_vector" : "with_positions_offsets",
"index_options" : "positions" 
26
nl ja de
@raffazizzi вы когда-либо находили лучшее решение?
добавлено автор a paid nerd, источник
@raffazizzi вы когда-либо находили лучшее решение?
добавлено автор a paid nerd, источник
Один путь состоял бы в том, чтобы установить pre_tag в некоторую символьную комбинацию (т.е. ~!) и находят его программно на клиентской стороне. Won' t это работают?
добавлено автор rkrahl, источник
Один путь состоял бы в том, чтобы установить pre_tag в некоторую символьную комбинацию (т.е. ~!) и находят его программно на клиентской стороне. Won' t это работают?
добавлено автор rkrahl, источник
Я мог соответствовать на дефолте , но меня don' t видят, как это помогло бы мне соответствующий ему назад к последовательности в области и восстановило бы погашения. I' m хорошо, в принципе, чтобы решить это на клиентской стороне, если there' s хорошее решение.
добавлено автор raffazizzi, источник
Я мог соответствовать на дефолте , но меня don' t видят, как это помогло бы мне соответствующий ему назад к последовательности в области и восстановило бы погашения. I' m хорошо, в принципе, чтобы решить это на клиентской стороне, если there' s хорошее решение.
добавлено автор raffazizzi, источник
Хорошо, похоже, что я могу использовать "number_of_fragments": 0, чтобы получить полный текст области в основном моменте. Это дает мне достаточно контекста, чтобы определить погашения на клиентской стороне. Все еще заинтересованный лучшими решениями:) Это помогло: stackoverflow.com/questions/4512656/…
добавлено автор raffazizzi, источник
Хорошо, похоже, что я могу использовать "number_of_fragments": 0, чтобы получить полный текст области в основном моменте. Это дает мне достаточно контекста, чтобы определить погашения на клиентской стороне. Все еще заинтересованный лучшими решениями:) Это помогло: stackoverflow.com/questions/4512656/…
добавлено автор raffazizzi, источник
Нет, жаль! Это решение закончило работу хорошо (даже при том, что по общему признанию it' s не идеальный).
добавлено автор raffazizzi, источник
Нет, жаль! Это решение закончило работу хорошо (даже при том, что по общему признанию it' s не идеальный).
добавлено автор raffazizzi, источник

4 ответы

Клиентский подход - на самом деле общепринятая практика.

Мы обсудили добавление погашений, но боимся, что оно привело бы к большему количеству беспорядка. Обеспеченные погашения характерны для кодирования Последовательности UTF-16 Явы, которое, в то время как они могли технически использоваться, чтобы вычислить фрагменты от $LANG, это - путь, более прямой, чтобы разобрать текст ответа для разделителей, которые вы определили.

9
добавлено
There' s запрос новых функций об этом здесь: github.com/elastic/elasticsearch/issues/5736
добавлено автор robinst, источник

Клиентский подход - на самом деле общепринятая практика.

Мы обсудили добавление погашений, но боимся, что оно привело бы к большему количеству беспорядка. Обеспеченные погашения характерны для кодирования Последовательности UTF-16 Явы, которое, в то время как они могли технически использоваться, чтобы вычислить фрагменты от $LANG, это - путь, более прямой, чтобы разобрать текст ответа для разделителей, которые вы определили.

9
добавлено
There' s запрос новых функций об этом здесь: github.com/elastic/elasticsearch/issues/5736
добавлено автор robinst, источник

Мы закончили тем, что расширили исходный текст как это:

[приблизительно 1] текст [2] мы [3] индекс [4]

Тогда мы определяем обычай анализатор с:

"char_filter": {
        "remove_tags": {
          "type": "pattern_replace",
          "pattern": "\\[[0-9]+\\]",
          "replacement": ""

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

I gave a fuller answer here

3
добавлено

Мы закончили тем, что расширили исходный текст как это:

[приблизительно 1] текст [2] мы [3] индекс [4]

Тогда мы определяем обычай анализатор с:

"char_filter": {
        "remove_tags": {
          "type": "pattern_replace",
          "pattern": "\\[[0-9]+\\]",
          "replacement": ""

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

I gave a fuller answer here

3
добавлено