Я создаю систему меток для своего сайта
Я получил основы добавления документа lucene, но я, может казаться, выясняю, как удалить документ или обновить тот, когда пользователь изменяет теги чего-то. Я нашел страницы, которые, поскольку, которые говорят, используют индекс документа и я должен оптимизировать перед эффектом, но как я получаю индекс документа? Также я замеченный другой, который сказал для использования IndexWriter для удаления, но я не мог выяснить, как сделать это с этим также.
Я использую asp.net C#, и у меня нет установки Java на той машине
Какую версию Lucene вы используете? Класс IndexWriter имеет метод обновления, который позволяет вам обновлять (кстати, обновление под капотом на самом деле является удалением с последующим добавлением). Вам понадобится какой-то идентификатор (например, идентификатор документа), который позволит вам обновлять. Когда вы индексируете документ, добавьте уникальный идентификатор документа, такой как URL-адрес, счетчик и т. Д. Тогда «Срок» будет идентификатором документа, который вы хотите обновить. Например, используя URL-адрес, вы можете обновить его следующим образом:
IndexWriter writer = ...
writer.update(new Term("id","http://somedomain.org/somedoc.htm"), doc);
Вам нужен IndexReader
для удаления документа, я не уверен насчет версии .net, но версии Java и C ++ API Lucene имеют класс IndexModifier
, который скрывает различия между классами IndexReader
и IndexWriter
и просто использует подходящий класс при вызове addDocument ()
и removeDocument ()
.
Кроме того, в Lucene нет концепции обновления документа, вы должны удалить его, а они снова добавить. Для этого вам необходимо убедиться, что каждый документ имеет уникальный сохраненный идентификатор в индексе.