Удаление меню из HTML во время сканирования или индексации с помощью Nutch и Solr. - PullRequest
4 голосов
/ 11 апреля 2011

Я сканирую наш большой веб-сайт (ы) с помощью Nutch, а затем индексирую с помощью Solr, и результаты довольно хорошие.Однако на сайте есть несколько структур меню, которые индексируют и портят результаты запроса.

Каждое из этих меню четко определено в DIV, поэтому <div id="RHBOX"> ... </div> or <div id="calendar"> ...</div> и некоторые другие.

Мне нужно в какой-то момент удалить содержимое этих DIVS.

Я предполагаю, что правильное место находится во время индексации по solr, но не может понять, как.

Шаблон будет выглядеть примерно как (<div id="calendar">).*?(<\/div>), но я не могу заставить это работать в <tokenizer class="solr.PatternTokenizerFactory" pattern="(<div id="calendar">).*?(<\/div>)" />и я не совсем уверен, где поместить его в schema.xml.

Когда я помещаю этот шаблон в schema.xml, он не анализируется.

Ответы [ 4 ]

1 голос
/ 16 августа 2016

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

Мы можем использовать следующие свойства в Nutch-site.xml чтобы реализовать это:

<!-- parse-tika plugin properties -->
<property>
  <name>tika.extractor</name>
  <value>boilerpipe</value>
  <description>
  Which text extraction algorithm to use. Valid values are: boilerpipe or none.
  </description>
</property>
<property>
  <name>tika.extractor.boilerpipe.algorithm</name>
  <value>DefaultExtractor</value>
  <description>
  Which Boilerpipe algorithm to use. Valid values are: DefaultExtractor, ArticleExtractor
  or CanolaExtractor.
  </description>
</property>

Это работает для меня.Надеюсь, это будет работать и для других ...:)

Для подробного ознакомления вы можете обратиться к этому билету: https://issues.apache.org/jira/browse/NUTCH-961

1 голос
/ 26 сентября 2011

Я думаю, что у вас есть несколько вариантов:

  1. расширить анализатор HTML Nutch и добавить логику для удаления заголовка.(Возможно, есть более подходящие места для этого, например, когда у вас есть необработанные данные, но до анализа DOM)
  2. сделает ваш сайт достаточно умным, чтобы не рисовать заголовок при сканировании Nutch.Это довольно легко сделать, просто проверив значение User-Agent в заголовке запроса.Возможно, вам придется лучше выполнить заполнение вашего сканирования, поскольку ссылки в заголовке не помогут найти другие страницы
  3. Каким-то образом заставить Solr удалить заголовок для данных поиска.Я не уверен, как вы это сделаете, и я думаю это означает, что вы потеряете некоторые синергии Натча / Солра.
  4. Каким-то образом отредактируйте индекс Натча (просто индекс люцены),Теоретически, вы можете просто пройтись по всем документам в индексе и обрезать правильное свойство каждого документа.

Я думаю, что самый простой способ сделать это, это сделать # 2, еслиу вас есть последовательный способ рисования заголовка (то есть скин или обычное включение).Тогда, возможно, № 1 и № 4.Я думаю, что № 3 будет самым сложным, но я могу ошибаться.

1 голос
/ 26 сентября 2011

Вот патч для SOLR, который вы можете поместить в конфигурацию индексирования, чтобы игнорировать содержимое настраиваемых тегов. Тем не менее, он будет работать только с XML, поэтому, если вы можете привести в порядок свой HTML или знаете, что это XHTML, это сработает, но не будет работать с любым произвольным HTML.

0 голосов
/ 11 апреля 2011

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

...