как настроить поля поиска в Lucene - PullRequest
0 голосов
/ 21 ноября 2011

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

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

1 Ответ

0 голосов
/ 21 ноября 2011

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

Пример (C #):

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