【问题标题】:Recommending constantly changing documents推荐不断变化的文档
【发布时间】:2015-05-27 22:41:23
【问题描述】:

我们正在尝试设计一个文档推荐系统,其中的文档会不断更新。实际上,文档是通常附加文本的流。

最初我们计划使用 lucene + solr。但这对大多数静态文档都有好处。lucene 更新文档的方式是先删除它,然后重新索引它。因此,如果在上述方法中频繁更新文档,则会随着语料库大小和平均文档大小的增加而导致索引速度变慢。

我们也很想构建自己的解决方案,但在制作原型后放弃了,因为我们正朝着重新发明信息检索功能的方向发展,这些功能已经在 lucene 中很好地实现了。有没有人有通过集成开源搜索和机器学习工具来构建这种系统的经验。

【问题讨论】:

    标签: solr lucene machine-learning information-retrieval recommendation-engine


    【解决方案1】:

    为了在不重新索引整个文档的情况下更新文档中任何字段的值,您可以使用DocValues。 您可以在以下博客http://shaierera.blogspot.com/2014/04/updatable-docvalues-under-hood.html 中阅读有关 DocValues 的信息

    【讨论】:

    • 在我们的例子中,它是构成文档大部分内容的单个字段“内容”。文本内容不断地附加到这个领域。有什么方法可以将这个要附加的数据放入 lucene 数据结构中,而不会导致整个“内容”字段被重新索引?
    • 你真的需要 lucene 吗? Lucene 不支持此功能,因为 term(field + value) 是最小的工作单元。作为解决方法,您可以在逻辑上将您的字段划分为多个字段,或者您可以在每次更新时使用动态字段并在 copyFiled stackoverflow.com/questions/6213184/… 中搜索,但我认为此解决方案不会有效
    • 是的,术语是最小的工作单元,但据我了解,术语构成字段+令牌,而不是值,因为值是将被索引的令牌集合。如果我们忽略 lucene,您能否建议任何其他方法来为不断附加的文档构建推荐引擎。
    猜你喜欢
    • 2011-01-12
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2015-01-04
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    相关资源
    最近更新 更多