根据多值字段中的子字符串对Solr文档进行排序

问题描述 投票:1回答:1

不确定我是否能做到这一点

我在索引中有以下文档

{
  "name": "nissan",
  "type": "product",
  "features":["build_100",
          "stability_80"]
}

{
  "name": "toyota",
  "type": "product",
  "features":["stability_100",
          "design_30"]
}

{
  "name": "Audi",
  "type": "product",
 "features":["build_70",
          "design_100"]
}

为了在功能字段“设计”中搜索构建,我从回忆中得到了文档2和3,我的问题是我可以根据“_”之后的数字对文档进行排序/排序,以便在以上情况我先得到doc3,然后是doc 2?

如果可以通过更改文档结构来实现,那么对我来说也没问题。

search solr lucene solrj
1个回答
1
投票

将它们作为独立字段索引,并确保在它们上启用docValues(默认情况下在最新版本的Solr上启用)。

<dynamicField name="features_*" type="int" indexed="true" stored="true"/>

然后,您将每个功能索引为单独的字段:

"feature_design": 100,
"feature_build": 70,

等等。然后按字段排序可以在任何其他字段(sort=feature_design)上进行排序。

© www.soinside.com 2019 - 2024. All rights reserved.