Как получить результат абзаца от поиска по ключевым словам solr после использования tika для индексации некоторых документов? - PullRequest
0 голосов
/ 12 сентября 2018

Я использую TIKA для индексирования документов. затем я хочу получить весь абзац от начала абзаца до конца абзаца, который содержит ключевые слова. Я пытался использовать HighlightFragsize, но он не работает. Например: есть документ как ниже:

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

  • Но куда бы я ни шел, в моем сердце место с самым большим красивые пейзажи - мой родной город.

есть два абзаца выше. Если я найду «мои родители», я надеюсь, что смогу получить весь параграф «Когда я был очень маленьким, мои родители ....... много красивых пейзажей». не только часть этого пункта. Я использовал HighlightFragsize, чтобы ограничить предложение, но результат не тот, который я хочу. Пожалуйста помоги. заранее спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

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

  1. поле, которое содержит ваши проанализированные данные - это хранится?Вы можете увидеть все содержимое?
  2. Если (1), текст длиннее 51200 символов?Конфигурация подсветки по умолчанию имеет настройку maxAnalyzedChars, которая установлена ​​на 51200.Это означает, что маркер не будет обрабатывать более 51200 символов из выделенного поля в сопоставленном документе для поиска бликов.В этом случае увеличивайте это значение до тех пор, пока не получите желаемые результаты.

Выделение на очень больших полях может привести к значительному снижению производительности, о котором вам следует помнить, прежде чем выбирать конфигурацию.См. this для получения более подробной информации.

UPDATE

Я не думаю, что есть параметр с именем HighlightFragsize, но есть параметр с именем hl.fragsize, который может делать то, что вы хотите, когда установленк нулю.

Попробуйте следующий запрос и посмотрите, работает ли он для вас: q=my+parents&hl=true&hl.fl=my_field&hl.fragsize=0

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

ОБНОВЛЕНИЕ 2 Я не думаю, что есть прямой способ сделать то, что вы ищете.Вы можете разделить свое поле на многозначное поле, в котором каждый абзац будет сохранен как отдельное значение.

Затем вы можете использовать hl.preserveMulti, hl.maxMultiValuedToExamine и hl.maxMultiValuedToMatch для достижения того, что вам нужно.

...