我们正在创建一个web应用程序,其中将包含帖子(类似于FB或Youtube)。对于数据的稳定部分(i.e.the方面、搜索结果及其内容),我们计划使用SOLR。
我们应该使用什么来处理数据的不稳定部分(即动态和不稳定的内容,如Like计数、评论计数、视图计数)?
选项1) Redis
如何将“动态”数据存储在不同的数据存储中(如Redis)?因此,每次刷新计数时,我根本不需要将数据重新索引到SOLR中。因此,SOLR索引只有在新帖子添加到站点时才会触发,而不会触发用户在帖子上的任何活动。
附注:-我还查看了https://github.com/sematext/solr-redis上的SOLR-Redis插件
该插件看起来不错,但不确定该插件是否可以用于获取存储在Redis中的数据,作为solr结果集的一部分,即在文档中。这个描述看起来更像是Redis的数据可以用在函数查询中,用于boosting,排序等。有谁有经验吗?
选项2)使用软提交的SOLR NRT
我们将依赖于内置的NRT功能。假设我们每秒钟软提交一次,每10秒硬提交一次。假设在网站上创建了数以百计的动态数据,例如10000个帖子中的100000个赞。因此,这将意味着每秒对10000行进行软提交。然后每10秒硬提交一次这些行。这是不是太夸张了?
哪个选项是首选的?在可扩展性、维护性、可行性、最佳实践等方面,您如何比较这两个选项?有任何现实生活中的经验或文章链接吗?
非常感谢!
附注:EFF (外部文件字段)不是一个选项,因为我读到该文件中的数据只能用于函数查询,不能作为文档的一部分返回。
发布于 2015-12-14 08:52:43
我建议您使用redis来处理频繁变化的数据。关于Solr软提交需要记住的一件事是,它们会使一些缓存数据失效,如果你有很多缓存数据,打开一个新的搜索器并构建新的缓存可能会比你喜欢的更耗时。
Solr非常适合全文搜索和遍历需要标记化的数据。它也很快;但是我不认为它是适合这项工作的工具。
您还可以查看此博客文章,了解有关Solr提交的更多信息。https://lucidworks.com/blog/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/
根据这篇文章:
软提交关乎可见性,硬提交关乎持久性。关于软提交,最需要理解的一点是,它们将使文档可见,但要付出一些代价。尤其是“顶级”缓存,包括您在solrconfig.xml中配置的内容(filterCache、queryResultCache等)将会失效!自动保护将在您的顶级缓存(例如filterCache、queryResultCache)上执行,并且将执行任何newSearcher查询。此外,FieldValueCache是无效的,因此facet查询将不得不等待,直到刷新缓存。对于非常频繁的软提交,通常情况下,您的顶级缓存很少使用,在某些情况下,可能会被删除。然而,包括函数查询、排序缓存等在内的“段级别缓存”是“按段”的,因此在软提交时不会失效。
发布于 2021-04-27 13:12:15
使用软提交的
A.使用EFF (外部文件字段)。在这篇文章中,你提到:EFF (external file fields) is not an option, as I read that the data in that file can only be used in function queries and cannot be returned as part of a document.
如果我没记错,你希望在搜索响应中包含这些动态字段的相应值。我们可以通过在fl
参数中使用field(exteranl_field_name)
来实现。
B.使用DocValues。DocValue fields are now column-oriented fields with a document-to-value mapping built at index time.
DocValues不是Lucene索引的一部分。我们可以将这些字段定义为docValue,并使用部分更新功能仅更新这些字段。
DocValue => https://solr.apache.org/guide/8_0/docvalues.html
EFF => https://solr.apache.org/guide/8_0/working-with-external-files-and-processes.html
文档更新=> https://solr.apache.org/guide/6_6/updating-parts-of-documents.html
https://stackoverflow.com/questions/34221511
复制相似问题