Как я удаляю/обновляю документ с lucene?

Я создаю систему меток для своего сайта

Я получил основы добавления документа lucene, но я, может казаться, выясняю, как удалить документ или обновить тот, когда пользователь изменяет теги чего-то. Я нашел страницы, которые, поскольку, которые говорят, используют индекс документа и я должен оптимизировать перед эффектом, но как я получаю индекс документа? Также я замеченный другой, который сказал для использования IndexWriter для удаления, но я не мог выяснить, как сделать это с этим также.

Я использую asp.net C#, и у меня нет установки Java на той машине

6
задан Community 23 May 2017 в 11:54
поделиться

2 ответа

Какую версию Lucene вы используете? Класс IndexWriter имеет метод обновления, который позволяет вам обновлять (кстати, обновление под капотом на самом деле является удалением с последующим добавлением). Вам понадобится какой-то идентификатор (например, идентификатор документа), который позволит вам обновлять. Когда вы индексируете документ, добавьте уникальный идентификатор документа, такой как URL-адрес, счетчик и т. Д. Тогда «Срок» будет идентификатором документа, который вы хотите обновить. Например, используя URL-адрес, вы можете обновить его следующим образом:

IndexWriter writer = ...
writer.update(new Term("id","http://somedomain.org/somedoc.htm"), doc); 
11
ответ дан 8 December 2019 в 17:19
поделиться

Вам нужен IndexReader для удаления документа, я не уверен насчет версии .net, но версии Java и C ++ API Lucene имеют класс IndexModifier , который скрывает различия между классами IndexReader и IndexWriter и просто использует подходящий класс при вызове addDocument () и removeDocument () .

Кроме того, в Lucene нет концепции обновления документа, вы должны удалить его, а они снова добавить. Для этого вам необходимо убедиться, что каждый документ имеет уникальный сохраненный идентификатор в индексе.

3
ответ дан 8 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: