Поиск по полю в Lucene - PullRequest
       2

Поиск по полю в Lucene

5 голосов
/ 13 октября 2010

Хотя, будучи абсолютным новичком, этот вопрос может быть довольно наивным. Я хочу найти свой индекс на основе индекса. Поэтому я попытался создать документ только с одним индексом - Name, а затем захотел найти это конкретное поле.

Я делаю это, пытаясь выяснить, могу ли я обновить поля документа без фактического удаления документа в lucene.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 октября 2010

Вы можете искать слова в определенном поле с синтаксисом двоеточия, например name:john.

Но поскольку во многих индексах есть только одно поле, по которому вы хотите искать, существует значение по умолчанию.поле, в случае, если вы просто ищете john.Вы можете указать, какое поле будет при создании экземпляра QueryParser

QueryParser parser = new QueryParser(Version.LUCENE_30, "name", anAnalyzer);
Query q = parser.parse("john");

Если вы хотите создавать свои запросы программно, а не анализировать строку запроса, введенную пользователем, вам также необходимо указать поле явно, дляпример:

Query q = new TermQuery(new Term("name", "john"));

Ссылки: Использование полей в запросах Lucene (синтаксис запроса Lucene) | QueryParser Javadoc | TermQuery Javadoc

0 голосов
/ 13 октября 2010

Я делаю это, пытаясь выяснить, могу ли я обновить поля документа без фактического удаления документа в lucene.

Я не понимаю первый вопрос, но вы не можете обновить документ в Lucene. Вы должны удалить и заново вставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...