SOLR查询字段单个或多个值

3

我是SOLR的新手,目前我的查询返回带有它们各自邮政编码的公司信息,邮政编码是一个数组类型的字段。一些结果包含多个邮政编码节点的值,而一些只有单个值。

结果集:

<doc>
 <str name="company">Alien Technology</str>
 <arr name="postCode">
   <str>2068</str>
   <str>2065</str>
   <str>2066</str>
   <str>2061</str>
   <str>2077</str>
 </arr>
 ....
</doc>

<doc>
 <str name="company">Cris' Sports</str>
 <arr name="postCode">
   <str>2068</str>
 </arr>
 ...
</doc>

<doc>
 <str name="company">Hyper Consultation Firm</str>
 <arr name="postCode">
   <str>2068</str>
   <str>2000</str>
   <str>2071</str>
 </arr>
 ...
</doc>

<doc>
 <str name="company">DJ Goods & Gadgets</str>
 <arr name="postCode">
   <str>2068</str>
 </arr>
 ...
</doc>

我的问题是,是否可以仅获取那些其postCode字段只有一个值的数据,或者反过来,获取包含多个postCode值的数据并排除那些postCode字段只有一个值的数据。这是否可以使用SOLR查询实现?

例如:

我搜索了postCode = 2068

我的第一次查询将仅返回Cris Sports和DJ Goods and Gadgets,因为它们的postCode字段只有一个值。

我的第二次查询将仅返回Alien Technology和Hyper Consultation Firm,因为它们都包含多个postCode值。

谢谢大家!

2个回答

1

没有直接的方法来获取多值字段或函数查询中项目的计数,可以在索引期间始终维护字段计数,并在查询时使用它。


0

当您按分数(降序)排序时,只有一个值的字段将具有更高的分数,因此将在其他字段之前列出。不确定是否有一种方法可以限制结果集仅具有与最大分数匹配的文档。也许可以在客户端中完成这个操作?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接