我有一个层次结构,如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不会按照我想要的顺序出现。
我认为没有直接的方法来实现这一目标,但你会走哪条路?自定义搜索组件或者可能以某种方式在索引时提升值?
答案 0 :(得分:0)
要回答我自己的问题,看起来这篇文章可能会得到答案: http://architects.dzone.com/articles/searching-hierarchical-fields