Solr 在同一位置搜索多值字段

Solr 在同一位置搜索多值字段,solr,Solr,假设我们有这样一个文档: <arr name="pvt_rate_type"> <str>CORPORATE</str> <str>AGENCY</str> </arr> <arr name="pvt_rate_set_id"> <str>1</str> <str>2</str> </arr> 公司的 机构 1. 2. 现在我进行

假设我们有这样一个文档:

<arr name="pvt_rate_type">
  <str>CORPORATE</str>
  <str>AGENCY</str>
</arr>

<arr name="pvt_rate_set_id">
  <str>1</str>
  <str>2</str>
</arr>

公司的
机构
1.
2.
现在我进行搜索,仅当文档在多值字段中的相同位置包含pvt_rate_set_id=1和pvt_rate_type=AGENCY时,我才希望返回该文档,因此不应返回上述文档(因为pvt_rate_set_id 1的pvt_rate_类型为CORPORATE)


这在索尔有可能吗?还是我的模式设计得很糟糕?否则,您将如何设计tat模式以允许我想要的搜索

这可能不是现成的。
您需要修改架构,使其字段名为pvt rate type,值为id

e、 g

CORPORATE=1
AGENCY=2
这可以通过定义

e、 g


因此,您可以使用相应的值作为“公司”类型或“机构”类型输入数据


筛选器查询将能够匹配精确的映射
fq=corporate\u pvt\u rate\u type:1

不幸的是,Solr似乎不支持这一点

在Solr中执行此操作的另一种方法是存储一个连接的字符串字段
type_和_id
,并使用分隔符(比如逗号)分隔类型和id,如:

q=type_and_id:AGENCY%2C1

(其中
%2C
是逗号的URL编码)。

您最后是如何做到的?我仍在寻找解决办法。如果您有OK,请与我们分享,因为我们已经定义了来自
pvt\u rate\u type
字段的密钥。但是,我们不需要在某个地方指定值应该取自
pvt\u rate\u set\u id
字段吗。在不指定其他字段的情况下,它是如何工作的?我有点困惑。
q=type_and_id:AGENCY%2C1