我们如何在SOLR查询中使用AND子句,这两个字段是多值字段?
例如,下面是数据库表的图片
发发电子邮件的JobseekerID
=========== =========== ==============
123-2011年7月22日-6月22日
123-2011年7月-2011年
现在在Sql中,如果我查询
其中CompanyID = "ABC“和EmailSentOn >14-2011年7月-2011年(它将返回TRUE)
其中CompanyID = "XYZ“和EmailSentOn >14-2011年7月-2011年(它将返回FALSE)
我们在SOLR怎么处理?以下是我的SOLR集合的图片,我是如何存储数据的
{int name=“作业查找器”}123{/int}
.
.
.
{arr name="CompanyID"}
{str}ABC{/str}
{str}XYZ{/str}{/arr}
{arr name="EmailSentOn"}
{str}2011-07-22T17:44:00Z{/str}
{str}2011-07-01T05:10:00Z{/str}{/arr}
我怎样才能在SOLR中查询到探索者123。因为对于SOLR来说,CompanyID和EmailSentON之间没有任何关系。他们需要两个独立的实体。
当我们查询公司ID是"ABC“和EmailSentOn >= 14-7月-2011年时,它将返回true,当我们说CompanyID是"XYZ”,EmailSentOn >= 14-7月-2011年将再次返回TRUE,因为SOLR将看到公司ID "XYZ“是否存在,'email on‘中的任何日期是否大于14-7月,那么它将返回TRUE。
但我们需要它检查是否CompanyID " XYZ“,那么公司的XYZ日期是大于14-7月或不。这不是,因为XYZ发送的电子邮件日期是“01-7月”。所以这应该是假的。
我希望你明白我的意思。有人能指点我在SOLR怎么处理这事吗?
发布于 2011-07-24 16:50:23
这里的问题在于模式的定义--您实际上没有multiValued数据!相反,您应该只有两个单独的索引文档,其值为CompanyId和EmailSentOn。然后,当您按日期搜索时,您只会得到一个或另一个文档的内容,并且不会像现在这样混乱结果。
https://stackoverflow.com/questions/6808119
复制相似问题