Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 按多值字段中的位置提升结果_Solr - Fatal编程技术网

Solr 按多值字段中的位置提升结果

Solr 按多值字段中的位置提升结果,solr,Solr,我有一个层次结构,比如客户端->项目->子项目(它可以有n个级别)。对于每个叶(子项目),我保留一个从父项到根的多值有序字段,以便搜索可以在名称和父项名称上匹配 当有人搜索“pro”时,我希望结果按以下顺序显示:首先是子项目,然后是项目,然后是客户端,如下所示: <doc> <str name="name">Sub**pro**ject1</name> <arr name="parentNames"> <str>Proj

我有一个层次结构,比如客户端->项目->子项目(它可以有n个级别)。对于每个叶(子项目),我保留一个从父项到根的多值有序字段,以便搜索可以在名称和父项名称上匹配

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

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

子**项目1
项目1
客户1
子条款2
**项目1
客户1
子条款3
Prj2
客户**Pro**1
提升名称很简单,但提升父名称同样适用于多值字段中的所有条目,因此条目2和条目3不会以我想要的顺序出现

我想没有直截了当的方法来实现这一点,但你会走哪条路?自定义搜索组件,或者在索引时以某种方式增加值