通过多值字段中的位置来提升结果

时间:2015-04-24 21:09:12

标签: solr

我有一个层次结构,如Client-> Project-> Subproject(它可以有n个级别)。对于每个叶子(子项目),我将父级的多值有序字段保留到根,因此搜索可以匹配名称和父名称。

当有人搜索“专业版”时,我希望结果按以下顺序显示:首先是子项目,然后是项目,然后是客户端,如下所示:

<doc>
  <str name="name">Sub**pro**ject1</name>
  <arr name="parentNames">
    <str>Project1</str>
    <str>Client1</str>
  </arr>
</doc>
<doc>
  <str name="name">Subprj2</name>
  <arr name="parentNames">
    <str>**Pro**ject1</str>
    <str>Client1</str>
  </arr>
</doc>
<doc>
  <str name="name">Subprj3</name>
  <arr name="parentNames">
    <str>Prj2</str>
    <str>Client **Pro**1</str>
  </arr>
</doc>

提升名称很简单,但提升parentNames同样适用于多值字段中的所有条目,因此条目2和3不会按照我想要的顺序出现。

我认为没有直接的方法来实现这一目标,但你会走哪条路?自定义搜索组件或者可能以某种方式在索引时提升值?

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,看起来这篇文章可能会得到答案: http://architects.dzone.com/articles/searching-hierarchical-fields