如何动态添加solr中的键值对?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何动态添加solr中的键值对?相关的知识,希望对你有一定的参考价值。

我有一个场景,我必须添加与solr中单击的文档的查询相对应的用户点击次数。我开始使用动态字段,但我不确定如何专门用于此目的。这就是我想要的

假设用户查询“Effel Tower”并点击链接,应将具有查询关键字的值添加到针对该文档的solr以及与该特定文档的该查询对应的点击次数。最终,我应该能够在根据点击次数执行相同查询时对solr结果进行排序。

我不确定这是否可行。请指导我最好的解决方案。

答案

当然,这可行 - 但它需要一些代码才能使它正常工作。请注意验证查询字符串,以便用户可以覆盖文档中其他字段的自定义属性。使用query_string_或类似的东西作为查询字符串的前缀,并添加与dynamicField匹配的query_string_*定义。

如果您要按大量不同的字段名称进行排序,则需要设置docValues,因为内部lucene缓存将导致内存不足异常,否则如果您按许多不同的字段排序(即使这些字段的稀疏值仅出现在少量文档中,缓存也将包含对所有文档ID的引用。

但是,为点击流数据集设置单独的集合可能更容易维护和扩展,您可以在每次单击时插入文档,引用单击的文档ID,单击日期和查询。这样,如果您想查看过去x天内流行的内容等,您可以查询查询并应用点击日期范围等。

最后一点:点击数据本身通常不相关。您希望使用用户是否返回搜索结果来扩充此数据,以及它是否是用户单击的最后一个链接。您还需要将点击频率与搜索结果中位置的预期点击频率进行比较 - 否则您将以与已订购相同的方式偏向搜索结果。人们点击第一次或第二次点击 - 你已经告诉他们的是最相关的 - 所以使用他们点击该链接作为如何排序文档的输入的事实将不会给你任何有用的数据。

以上是关于如何动态添加solr中的键值对?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 scala 中生成的键值对中添加值

如何从字典列表中向现有键值对添加新的键值对?

下篇1:将 ConfigMap 中的键值对作为容器的环境变量

如何从飞镖颤动中的键或键值对获取索引

观察 NSMutableSet 的键值对

如何在php中的数组中插入新的键值对?