Sorting 基于匹配域的solr排序

Sorting 基于匹配域的solr排序,sorting,solr,Sorting,Solr,我正在使用solr-3.6。我的Solr索引中有一个可搜索字段列表,如 名称 电子邮件 城市 状态 国 所有这些字段都是同一类型的字符串,并被索引和存储。 所有5个字段都复制到名为text的复制字段中并在其上搜索。 索引和查询期间不使用标记化器 假设我在索引中搜索johnsearch为John*的值,以获得通配符搜索,它在5个文档中匹配,如下所示: < doc> < name>Johnson< /name> < other fields> ....

我正在使用solr-3.6。我的Solr索引中有一个可搜索字段列表,如

名称 电子邮件 城市 状态 国 所有这些字段都是同一类型的字符串,并被索引和存储。 所有5个字段都复制到名为text的复制字段中并在其上搜索。 索引和查询期间不使用标记化器

假设我在索引中搜索johnsearch为John*的值,以获得通配符搜索,它在5个文档中匹配,如下所示:

< doc>
< name>Johnson< /name>
< other fields> .... < /other fields>
< /doc>

< doc>
< email>John043@xyz.com< /email>
< other fields> .... < /other fields>
< /doc>

< doc>
< city>Johnyville< /city>
< other fields> .... < /other fields>
< /doc>

< doc>
< state>Johnford< /state>
< other fields> .... < /other fields>
< /doc>

< doc>
< country>Johnland< /country>
< other fields> .... < /other fields>
< /doc>
我希望此结果根据其匹配的值进行排序,如下所示:

约翰福德、约翰兰、约翰逊、约翰维尔和John043@xyz.com

我无法基于copyfield文本进行排序,因为它是一个多值字段。 这是否可以在多个匹配搜索查询的字段上实现这种排序

请评论这样做的可行性和方法。
提前谢谢

这里的排序逻辑是什么?字段匹配?阿尔法??谢谢你的邀请。搜索逻辑是按字母顺序a-Z排列的。但是,关键是我们不在单个预定义字段上排序。我们的搜索可以匹配多个字段的值,如姓名、城市、国家等,但生成的匹配文档应根据它与Johnford、Johnland、,John043@xyz.com,依升序排列。我认为不可能按照匹配字段对值进行算术排序,正如您所提到的,这将是一个多值字段,我假设您将始终具有所有值。@Jayendra感谢您的回答。如果我们定制Solr的排序代码,这是可以实现的吗?重写类FieldType的getSortField方法后,我们可以使用一个虚拟索引字段,其值将设置为匹配字段的值,如Johnford、Johnland、,John043@xyz.com等进行排序。然后,可以从上面的方法返回此字段进行排序,就像典型的排序一样,在具有与搜索键匹配的值的虚拟字段上。你认为那会有帮助吗?