как настроить поля для поиска в Lucene

У меня есть входящие запросы, и я хочу выполнять поиск только в определенных полях (автор, название книги), а не в поле (содержание книги). Как я могу добиться этого в Lucene?

другой вопрос заключается в том, как я могу присвоить более высокий рейтинг документам, у которых есть совпадения в поле автора. Например, у doc1 есть совпадение в "содержании книги", а у doc2 есть совпадение в "авторе", как я могу получить более высокий рейтинг для doc2


person Jun    schedule 21.11.2011    source источник


Ответы (1)


Вы можете комбинировать несколько запросов, используя BooleanQuery, и иметь Occur.Should (что означает ИЛИ). Я также считаю, что в таком сценарии вы можете усилить определенные запросы, что означает, что совпадения в определенном поле имеют более высокую релевантность, чем, например, контент.

Пример (С#):

var query = new BooleanQuery();
query.Add(new TermQuery("author", searchTerm), Occur.Should);
query.Add(new TermQuery("book title", searchTerm), OCcur.Should);
person jishi    schedule 21.11.2011