2015-07-28 1 views
1

Как я могу выполнить поиск, подобный этому, в Lucene.net?Как искать 2 поля для 2 разных ключевых слов? Lucene.net

Вернуться все результаты, где Title Поле равно "someTitle" и где isPrivate Поле равно "false"?

Я думаю, что я мог бы создать 2 индекса, один со всеми документами и один только с не-частными. Но было бы еще лучше, если бы было возможно сделать это только с одним индексом.

ответ

1

Вы можете сделать это легко с помощью QueryParser's query syntax:

+Title:someTitle +isPrivate:false 

Или путем объединения двух терминов для поиска в BooleanQuery:

BooleanQuery bq = new BooleanQuery(); 
bq.Add(new TermQuery(new Term("Title", "someTitle"), Occur.MUST); 
bq.Add(new TermQuery(new Term("isPrivate", "false"), Occur.MUST);