Как получить подходящую строку, выполнив поиск по Lucene? - PullRequest
4 голосов
/ 06 сентября 2010

Я хотел бы знать, как я могу получить соответствующие строки, выполнив поиск по индексу Lucene?

Я попытался установить модуль Perl Lucene::Search::Highlight и снова и снова отказывал. Могу ли я получить другие фрагменты текста, которые, по мнению Люсена, имеют отношение к моей поисковой фразе?

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

Вы можете получить слова из запроса, затем

function highlightWords($text, $words)
{
  /*** loop of the array of words ***/
  foreach ($words as $word)
  {
    /*** highlight the words ***/
    $text = preg_replace("/\b($word)\b/i", 
            '<span style="color:red">\1</span>', $text);
  }
  /*** return the text ***/
  return $text;
}
1 голос
/ 06 сентября 2010

Два возможных способа сделать то, что вы просите, в зависимости от того, что вы хотите:

  1. Посмотрите, какие строки соответствуют для целей отладки: Java Lucene имеет объяснение () для этогоцель.Поскольку Plucene должен быть похожим, я предлагаю вам искать объяснение () в исходном коде, поскольку я не смог найти его в документации.
  2. Отображение согласованных строк пользователю: используйте маркер, как вы пыталисьделать.Я предлагаю вам опубликовать код с конкретными проблемами для SO, и, вероятно, кто-то сможет помочь.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...