Какие показатели в Lucene? - PullRequest
1 голос
/ 02 мая 2011

Что такое индексы в Lucene и как это работает?

Я просмотрел несколько статей в сети и Google, но не смог полностью понять концепцию индекса, документов и т. Д.

Пожалуйста, помогите, если кто-нибудь может объяснить простыми терминами термин индекс и индексирование.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Скажем, у вас есть куча информации, которую вы хотели бы сделать доступной для поиска. Например, некоторые HTML-файлы, некоторые PDF-файлы и некоторая информация хранятся в базе данных. Когда пользователь выполняет поиск, вы можете написать поисковую систему, которая просматривает эту информацию и возвращает результаты, которые соответствуют. Однако это обычно слишком медленно для больших наборов данных.

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

При создании индекса вы решаете, какие поля включать, основываясь на том, что вы хотите сделать доступным для поиска. Например, вы можете указать заголовок, идентификатор, строку категории и т. Д. Как только поля определены, вы создаете документ в индексе для каждого информационного элемента (html, pdf, записи в базе данных и т. Д.). Этот процесс называется индексация .

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

Надеюсь, это поможет на высоком уровне.

0 голосов
/ 02 мая 2011

Lucene создает инвертированный полнотекстовый индекс, разбивает документы на слова, создает индекс для каждого слова.

For Instance:
Document 1: "Apache Lucene Java"
Document 2: "Java Library"

Inverted Index:
Tokens       Document Location
apache      1
Library     2
Java        1, 2
Lucene      1

Давайте расширимся, теперь давайте рассмотрим Документ с двумя Полями . Тело и Заголовок .

Document doc = new Document()
doc.add(new Field("body", "This is my Test document", Field.Store.YES, Field.Index.TOKENIZED)
doc.add(new Field("title", "Test document", Field.Store.YES, Field.Index.UNTOKENIZED)

У вас есть возможность токенизировать или не токенизировать поле.

В Luncene есть различные анализаторы, с использованием StandardAnalyzer

Analyzer analyzer = new StandardAnalyzer()

вышеуказанный документ будет токенизирован "my "," Test "," document "," test document "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...