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

时间:2019-03-29 16:10:02

标签: search solr lucene solrj

不确定我是否可以实现

索引中有以下文件

{
  "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?

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

1 个答案:

答案 0 :(得分:1)

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

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

然后将每个功能作为单独的字段编制索引:

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

,依此类推。然后,可以按照对其他任何字段(sort=feature_design)进行排序的方式来进行按字段的排序。