2014-11-06 3 views
0

Как поднять некоторые слова в индексе lucene?поднять некоторые слова в lucene

См., Например, У меня есть список предметов:

"lucene in action" 
"solr in action" 
"solr in action book" 
"building search applications" 
"building search applications book" 

Я считаю слово «книга» не столь важным и хотел бы проголосовать за него. Я бы не хотел использовать фильтр, чтобы полностью удалить слово из результатов поиска, поскольку оно все еще может быть полезно. В одной книге может быть книга слов на имя (например, «книга мормона»).

В настоящее время я использую

new StandardAnalyzer(version) 

и хранить поля как

new TextField("name", name, Field.Store.YES) 

В идеале я хотел бы иметь словарь со списком терминов, чтобы повысить и обеспечить его Lucene. Я знаю, что я могу увеличить поиск, если нарушу запрос к терминам (например, «lucene» AND «book»^0.5), но это не то, что я хочу.

ответ

1

В Apache Lucene вы можете настроить повышение в трех разных местах: документе, поле и запросе. Поскольку вы не хотите повышать уровень запроса, я думаю, что повышение вашего уровня на поле может пригодиться в вашем случае. Метод setBoost() класса Field.
Имейте в виду, что если вы добавите повышение в свое поле, вам нужно сделать это, прежде чем добавлять документ в индекс.
Вам также нужно подумать о том, что делать, когда вы удаляете документ из индекса, или изменяется словарь словаря (что я уверен, что оно будет).

+1

спасибо. Извините, я, наверное, что-то пропустил. Но как увеличить конкретный термин в этом случае? Предположим, я хочу увеличить «книгу» от «lucene в книге действий». – cyrillk

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