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