我有一个关于solr查询的问题,它有两个多值字段。 Fllow它是架构的一部分:
<field name="attribute" type="text" indexed="true" stored="true" multiValued="true"/>
<field name="locale" type="text" indexed="true" stored="true" multiValued="true"/>
它从xml中读取数据:
<docs>
<doc>
<id>01000</id>
<name>product1</name>
<price>102.5</price>
<attributes name="description">
<str attribute="this is english description" locale="en_US" />
<str attribute="this is chinese description" locale="zh_CN" />
</attributes>
</doc>
</docs>
问题是查询条件“q = attribute:english AND locale:en_US”或“q = attribute:english AND locale:zh_CN”可以返回此doc。
我希望只有条件是“q =属性:英语和语言环境:en_US”或“q =属性:中文和语言环境:zh_CN”才能返回文档,我该怎么办?
谢谢!
答案 0 :(得分:1)
Christian Lendel建议使用的选项,另一个选项是加入属性和 locale 选项并将其索引为一个字符串:“en_US这是英文描述” 。 然后你可以查询是这样的:
q=attribute:(english en_US)
解决方案可能更简单或更复杂,取决于您想要实现的目标。