2013-07-07 9 views
0

Я хотел бы проиндексировать 1 миллион html-документов в Lucene. Мне нужно индексировать в одном документе Lucene несколько html-файлов. В последнее время я хотел бы узнать в ответе поиска оригинальный html-документ.Lucene indexing html documents

Так, например, у меня есть:

1.home.html 
2.history.html 
3.about.html 

4.home2.html 
... 

Я хочу индексом 1, 2 и 3 в том же документе Lucene. Затем, если я ищу любой текст, я хочу знать исходный документ (домашний, исторический или о).

Я искал в Интернете и нашел Lucene полезная информация. Поэтому я думал об индексировании URL-адреса исходного документа во всех терминах. Это хорошее решение? производительность будет в порядке?

Большое спасибо за помощь.

+0

Вы сохраняете только имена html-файлов или всего содержимого html-файлов? –

+0

Полезная нагрузка может обеспечить приемлемое решение. Хорошим решением было бы сохранить страницы в виде отдельных документов. Почему вы хотите индексировать эти три страницы в одном документе? – femtoRgon

+0

Я храню все содержимое документов, а также хотел бы сохранить название документов. Я уже реализовал решение разделенных страниц, и он работает отлично, но мне нужно искать в группе (например: home, history и about), как я сказал ранее, и единственный способ, которым я нашел, - использовать полезные нагрузки. – Hibernator

ответ

0

Я работал два дня над этой проблемой, и я думаю, я нашел решение.

индекс I для каждой страницы в одном документе с использованием идентификатора, как, например:

1.home.html  id1 htmlcontent 
2.history.html id1 htmlcontent 
3.about.html id1 htmlcontent 

4.home2.html id2 htmlcontent 
... 

В последнее время я могу использовать org.apache.lucene.search.grouping сгруппировать результаты по этому идентификатору.

http://lucene.apache.org/core/3_2_0/api/contrib-grouping/org/apache/lucene/search/grouping/package-summary.html

Надеется, что это помогает кто-нибудь :)

0

Я думаю, что вам нужен Apache Solr http://lucene.apache.org/solr/, его использует Lucene как механизм индексирования и имеет запрос/веб-интерфейс для поиска.

посмотреть на этот учебник на сайте http://lucene.apache.org/solr/4_3_1/tutorial.html

+0

Я использую Hibernate Search в качестве основной библиотеки, и я хотел бы продолжать использовать его, не включая любое другое приложение. Я знал о Солре, но на данный момент я попытаюсь избежать этого ... Спасибо! – Hibernator

0

Это две разные функции Lucene:

1.Grouping: позволяет результатам группы поиска по заданному полю. Например, если вы группируете по полю автора, то все документы с одинаковым значением в поле автора попадают в одну группу. У вас будет какое-то дерево в качестве выходного.

http://lucene.apache.org/core/3_2_0/api/contrib-grouping/org/apache/lucene/search/grouping/package-summary.html

2.facet: эта функция не группируют документы, он просто говорит вам, сколько документы попадают в определенном значении фаски. Например, если у вас есть грань, основанная на поле автора, вы получите список всех ваших авторов, и для каждого автора вы узнаете, сколько документов принадлежит этому конкретному автору. После того, как вы захотите просмотреть эти документы, вам нужно еще раз запросить добавление определенного фильтра (author = whatever). Граненый поиск на самом деле на основе просмотра документов, применяющих несколько фильтров для постепенного достижения документов вы действительно заинтересованы.

вот некоторые учебники

http://lucene.apache.org/core/4_3_1/facet/org/apache/lucene/facet/doc-files/userguide.html

http://lucene.apache.org/core/4_3_1/facet/org/apache/lucene/facet/search/package-summary.html

просто пройти через он и работает в соответствии с вашими потребностями

+0

На данный момент все кажется прекрасным с расширением группы Lucene. Спасибо за вашу помощь! – Hibernator