【问题标题】:Dynamically retrieve all fields present in Solr documents动态检索 Solr 文档中存在的所有字段
【发布时间】:2017-08-23 17:20:48
【问题描述】:

是否可以动态检索一组 Solr 文档中存在的所有字段并仍然保持合理的性能?此处的最终目标是动态填充数字字段列表,供用户对其当前查询进行排序。

在一个完美的世界中,我希望能够让这个列表包含用户查询返回的文档中存在的所有数字字段。

但是,如果这无法实现,我将通过 luke 处理程序使用数字字段填充列表。不幸的是,luke 处理程序似乎返回整个集合的字段,但不能仅限于当前查询。

我对 Solr 还很陌生,因此非常感谢任何帮助/讨论!

【问题讨论】:

    标签: javascript jquery solr luke bigdata


    【解决方案1】:

    这就是我解决问题的方法:

    1. 向架构添加新字段:SORT_DOC_FIELDSNO_SORT_DOC_FIELDS
    2. 使用 ScriptUpdateProcessor 编写了一些 JavaScript,用于确定是否可以根据多个条件对字段进行排序(例如,不是多值,不是类型 tdatestring)。如果可以对其进行排序,我将其添加到该文档的SORT_DOC_FIELDS 字段中;如果没有,我将其添加到 NO_SORT_DOC_FIELDS 字段中。
    3. 每当我想检索查询中存在的字段时,我都会将&facet=true&facet.field=SORT_DOC_FIELDS&facet.field=NO_SORT_DOC_FIELDS&facet.limit=-1 添加到查询字符串中。

    性能还可以。我有一个包含 3000 万个文档的索引,进行查询并获得响应,往返大约需要 2 秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-20
      • 2013-08-14
      • 1970-01-01
      • 2012-07-02
      • 2014-01-29
      • 1970-01-01
      • 2011-12-29
      • 2020-10-02
      相关资源
      最近更新 更多