fid*_*der 6 arrays solr filter multivalue
有没有办法过滤查询,所以我将获得具有特定数组字段的文档,其中包含至少一个其他值,除了我传递的值.
例如,我有3个文档.
<doc>
<arr name="my_array">
<int>2</int>
<int>4</int>
</arr>
</doc>
<doc>
<arr name="my_array">
<int>2</int>
</arr>
</doc>
<doc>
<arr name="my_array">
<int>4</int>
<int>3</int>
<int>1</int>
</arr>
</doc>
Run Code Online (Sandbox Code Playgroud)
我想要my_array除了2和4之外至少包含一个其他值的文档.因此结果将是:
<doc>
<arr name="my_array">
<int>4</int>
<int>3</int>
<int>1</int>
</arr>
</doc>
Run Code Online (Sandbox Code Playgroud)
你可以试试
qf=my_array&q=+(2 4) +([* TO 1] [3 TO 3] [5 TO *])
Run Code Online (Sandbox Code Playgroud)
这翻译成
我知道这between 3 and 3有点奇怪,但这是由于这个例子造成的。
需要注意的是,您需要在客户端计算查询以获得正确的范围子句。尽管计算这个的逻辑并不太难。
我已经用eDisMax尝试过,它的配置如下
qf=my_array&q=+(2 4) +([* TO 1] [3 TO 3] [5 TO *])
Run Code Online (Sandbox Code Playgroud)