首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOLR -如何处理两个多值字段之间的子句

SOLR -如何处理两个多值字段之间的子句
EN

Stack Overflow用户
提问于 2011-07-24 16:33:34
回答 1查看 611关注 0票数 0

我们如何在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"}

代码语言:javascript
复制
   {str}ABC{/str}

   {str}XYZ{/str}

{/arr}

{arr name="EmailSentOn"}

代码语言:javascript
复制
   {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怎么处理这事吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-24 16:50:23

这里的问题在于模式的定义--您实际上没有multiValued数据!相反,您应该只有两个单独的索引文档,其值为CompanyId和EmailSentOn。然后,当您按日期搜索时,您只会得到一个或另一个文档的内容,并且不会像现在这样混乱结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6808119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档