Удаление или обновление документа в lucene index - PullRequest
0 голосов
/ 22 октября 2011

У меня есть простой индекс Lucene, который содержит несколько демонстрационных документов:

Title, Keywords, H1Tag

Теперь я хочу удалить один из документов в индексе, но из того, что я прочитал, я не могу зависеть от docId, поскольку он может измениться?

Так, как я должен обновить / удалить документы?

единственные образцы, которые я нахожу для удаления / обновления, основаны на Условиях, например, где заголовок равен тому, что я хочу удалить, но что, если у меня 20 одинаковых заголовков?

1 Ответ

0 голосов
/ 22 октября 2011

Вы также можете передать Query в DeleteDocuments.

Итак,

new QueryParser(...).Parse("+Title:... +H1Tag:.... +Keywords:...");

также можно использовать для удаления документов.

Другой альтернативой может быть формирование вашего собственного логического запроса

BooleanQuery bq = new BooleanQuery(); bq.Add(....);

и передача этого запроса в DeleteDocuments. Но это все, что вы можете сделать, если не сохраните поле типа Key и не создадите свой собственный уникальный ключ для каждого документа (например, хэширование).

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