2012-03-08 161 views
1

一个Solr的查询问题就在这里。Solr的查询语法像这样的SQL“IN”条件

例如,组检查查询:在Solr中有一个由逗号字段放置的字符串,例如“Group1,Group2,Group3”。我的参数是字符串列表,如“Group3”,“Group4”,“Group5”。 在这种情况下,以“组别1,第2组,第3组”的文件需要检索,因为“组3”是包含在现场。

这就像SQL“IN”,但我没有找到一种方法来查询这样的条件。 问题是Solr中不允许通配符作为第一个查询。

这个问题的任何解决方案? 非常感谢!

+1

我不知道理解你的问题。什么是使用,比方说,问题 “Q = {Lucene的!} *:{!Lucene的q.op = OR} * FQ = groupField:(组3组4组5)” – jpountz 2012-03-08 09:57:42

+0

同意和OP需要做出一定的逗号Solr中的限定字段是标记化或多值的。我个人认为后一种选择(多值字符串)更好。 – 2012-03-08 15:54:53

回答

0

你确定你使用的是在你的架构中的列的类型是:

<fieldType name="text_country" class="solr.TextField" positionIncrementGap="100">

,而不是:

<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>

+0

谢谢你的启发我!我使用空格而不是逗号分隔组。然后查询'组:Group1或Group2'的作品! – 2012-03-09 02:36:38