2016-03-30 3 views
0

У меня проблема с маркерами сообщений. Согласно документам: «... ярлык проводки ... выводит предложения независимо от их длины».Elasticsearch публикации highlighter возвращает слишком много предложений

Итак, установив: "number_of_fragments" : 1 Я должен получить только одно предложение. Это то, что происходит в 90% случаев, но иногда я получаю действительно длинный текст, который, очевидно, более одного предложения. Например: (подсвеченные слова река и загрязненная)

Это коллегиальный орган с консультативным и совещательным управлением Комплексным водных ресурсов - работает на блок управления 10 водных ресурсов, построенное государства, муниципалитетов и гражданского общества. [2] Этот комитет взял на себя инициативу гражданского общества и в настоящее время включает в себя 34 муниципалитета, 18 были расположены в Сорокабе Река бассейн и 16 расположены в суббассейне верхнего среднего тет. [3] Это было очень загрязнена река из-за промышленной деятельности, горнодобывающей промышленности, сточные воды без очистки и т.д.

Есть 3 предложения и первые две не имеют даже подсвеченные слова в них. Я думаю, что здесь есть ошибка, из-за чего маркер игнорируется. после чего следует '['. Я заметил, что это происходит во всех плохих результатах подсветки.

Это известная ошибка? или я что-то упускаю? Thanks

ответ

1

Не уверен, думаю, что это ошибка, сама по себе. Границы предложений не так просты, как просто разделение периодов (вы не хотите разбивать «3.14» или «Mr. Smith») и часто неоднозначны.

PostingsHighlighter использует java.text.BreakIterator, чтобы определить, где расстраивать предложения. Я думал, что поведение BreakIterator было основано на UAX #29, но это поведение не совсем согласуется с этим (you can try it here).

Итак, возможно, это ошибка в java.text.BreakIterator, или это может быть так, как их алгоритм предназначен для работы.

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