0

Мы пытаемся разработать рекомендательную систему документов, в которых постоянно обновляются документы. На самом деле документами являются потоки, к которым обычно добавляется текст.Рекомендации по постоянно меняющимся документам

Первоначально мы планировали использовать lucene + solr. Но это хорошо для большинства статических документов. Путь lucene обновляет документ, удаляя его сначала, а затем переиндексируя его. Таким образом, если документ обновляется часто выше подхода, это приводит к более медленной индексации, поскольку размер корпуса и средний размер документа увеличивается.

Мы также испытывали соблазн построить собственное решение, но отказались от прототипирования, поскольку мы дрейфовали, чтобы повторно изобретать функции поиска информации, которые были уже хорошо реализованы в lucene. Имеет ли кто-либо опыт построения такого рода системы, интегрируя инструменты поиска с открытым исходным кодом и средства машинного обучения.

ответ

0

Чтобы обновить значение любого поля в документе без повторной индексации всего документа, вы можете использовать DocValues. Вы можете прочитать о DocValues ​​в следующем блоге http://shaierera.blogspot.com/2014/04/updatable-docvalues-under-hood.html

+0

В нашем случае это единственное полевое «содержание», которое составляет большую часть документа. И именно в этом поле текстовое содержимое постоянно добавляется. Есть ли способ получить данные для добавления данных в структуру данных lucene, не вызывая переиндексацию целого поля «контент»? –

+1

Вам действительно нужен люцен? Lucene не поддерживает эту функцию, потому что термин (поле + значение) является наименьшей единицей работы. В качестве обходного пути вы можете логически разделить свое поле на несколько полей или вы можете использовать динамическое поле для каждого обновления и поиска в copyFiled http://stackoverflow.com/questions/6213184/solr-search-query-for-dynamic-fields-indexed, но Я не думаю, что это решение будет эффективным – Ivan

+0

Да термин - наименьшая единица работы, но поскольку я понимаю, что термин обозначает поле + токен, а не значение, поскольку значение представляет собой набор токенов, которые будут индексироваться. Если мы проигнорируем lucene, вы могли бы предложить какой-либо другой подход к созданию механизма рекомендаций для постоянно приложенных документов. –

Смежные вопросы