我想向Solr发送一个字符串,让它回答所有记录,这些记录是该字符串的一个子集。
我发送的字符串有整数,用空格分隔。我想让solr给我所有记录,其中特定的字符串字段是我提供的数字的子集作为请求字符串。
一个例子......
想象一下,我在Solr中有一个索引的字符串字段,实际上是一组由空格分隔的整数。例如,假设我在Solr中索引了以下记录的字段:
我希望Solr收到一个查询,例如“888110 888140”并回复以下记录:
如果我通过“888110 888120 888130”查询,检索到的记录将是......
检索到的记录必须完全是以字符串形式提供的数字的子集。
是否有可能让Solr表现得像这样?
答案 0 :(得分:0)
我有点困惑为什么在第一个例子中没有返回“888110”,但它是在第二个例子中。
无论如何,如果我一般都了解你要做什么,我会创建一个新的字段multi valued
并在查询中使用你的布尔运算符(AND,OR)。
例如在架构中
<field name="code_string" ... />
<field name="codes" ... multiValued="true"/>
所以你有一个像
这样的文件<doc>
<arr name="codes">
<str>811001</str>
<str>811002</str>
</arr>
并在您的查询中
?=codes=811001 OR codes=811002 OR ....
根据我对solr的经验,它通常更清洁/更易于维护而牺牲一点记忆而不是创建虚弱复杂的过滤器链等