小编jif*_*ank的帖子

Solr:将OR查询中的匹配数过滤到多值字段

给出以下示例solr文档:

<doc>
  <field name="guid">1</field>
  <field name="name">Harry Potter</field>
  <field name="friends">ron</field>
  <field name="friends">hermione</field>
  <field name="friends">ginny</field>
  <field name="friends">dumbledore</field>
</doc>
<doc>
  <field name="guid">2</field>
  <field name="name">Ron Weasley</field>
  <field name="friends">harry</field>
  <field name="friends">hermione</field>
  <field name="friends">lavender</field>
</doc>
<doc>
  <field name="guid">3</field>
  <field name="name">Hermione Granger</field>
  <field name="friends">harry</field>
  <field name="friends">ron</field>
  <field name="friends">ginny</field>
  <field name="friends">dumbledore</field>
</doc>
Run Code Online (Sandbox Code Playgroud)

以及以下查询(或过滤查询):

friends:ron OR friends:hermione OR friends:ginny OR friends:dumbledore 
Run Code Online (Sandbox Code Playgroud)

将返回所有三个文档,因为它们每个都至少有一个指定的朋友.

但是,我想为匹配的朋友数设置最小(和最大)阈值.例如,仅返回至少有2个但不超过3个指定朋友的文档.

这样的查询只返回第三个文件(Hermione Granger),因为她指定了4个朋友中的3个,而第一个(哈利波特)匹配所有4个,而第二个(Ron Weasley)只匹配1个.

这在Solr查询中是否可行?

solr

5
推荐指数
1
解决办法
1826
查看次数

标签 统计

solr ×1