2015-04-24 30 views
1

我有一个像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不会按照我想要的顺序出现。

我认为有没有简单的方法来实现这一点,但你会走哪条路?自定义搜索组件或者可能以某种方式提高索引时间的值?

回答