0

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

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

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

我对 Solr 相当陌生,所以任何帮助/讨论将不胜感激!

4

1 回答 1

0

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

  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 秒。

于 2017-11-08T18:03:35.293 回答