2014-11-26 3 views
0

Я новичок в lucene.I запутался в индексировании part.I есть ресурс, где у меня есть идентификатор, имя, список продуктов и список ключевых слов. Я делаю поиск по именам, продуктам и ключевым словам (хранение, анализ и их токенирование). Я хочу знать, как индексирование будет применяться к моим документам. Это похоже на хэш-карту как таковую?Как lucene создает индексы из документов

Document d = new Document(); 
d.add(new TextField("name", cr.getData().name, Field.Store.YES)); 
for (int i = 0; i < cr.getData().products.size(); i++) 
    d.add(new TextField("products", cr.getData().products.get(i), 
    Field.Store.YES)); 
    for (int i = 0; i < cr.getData().keywords.size(); i++) 
    d.add(new TextField("keywords", cr.getData().keywords.get(i), 
        Field.Store.YES)); 
     d.add(new StringField("id", cr.getData().id, Field.Store.YES)); 
     iw.addDocument(d); 

ответ

0

Нет, это не хэш-карта, а inverted index.

В первых главах Information Retrieval book следует предоставить более подробную информацию о том, как это работает.

+0

Путаница произошла из-за того, что я создал документы, проиндексировал их, а затем в своем наборе результатов поиска получал те же документы, в которых был поисковый запрос. Так, например, мы храним документы, извлекаем их в результате поиска. – user3701803

+0

Если вы храните документ в другом месте, хранить данные не так просто (кроме id). Вы можете получить документ, загрузить идентификатор и получить содержимое из вашего основного источника. Но я не уверен, понимаю ли я вашу проблему. – mindas

+0

Да, проблема связана с моей структурой документа, как описано в вопросе, когда у меня есть значительный объем ресурсов, у меня будет столько документов и, следовательно, когда я выполню общий поиск терминов, я получу точно то же самое количество документов. – user3701803

Смежные вопросы