0

我的 solr xml 文件就像

<doc><UserId>12</UserId><UserIdInCommunity>1</UserIdInCommunity><CommunityId>1</CommunityId><UserEmail>gaurav@somemail.com</UserEmail></doc><doc><UserId>12</UserId><UserIdInCommunity>2</UserIdInCommunity><CommunityId>3</CommunityId><UserEmail>gaurav@somemail.com</UserEmail></doc>

从这里可以清楚地看出,ID 为 12 的用户存在于两个社区中,但是当我在 solr 中使用查询“UserEmail:gaurav@somemail.com”搜索它时,它只返回一条记录,而如果我用自由文本搜索它,我的意思是“gaurav@somemail.com”,它返回正确的记录。

请帮忙。
谢谢,
高拉夫

4

1 回答 1

0

UserEmail 是字符串字段吗?如果是这样,您的文档中的电子邮件地址后面会有一个额外的“>”:“gaurav@somemail.com>”。除非您使用 *,否则字符串字段需要完全匹配,因此您可能需要检查您的 XML。您可能还想尝试通配符搜索,例如:

 UserEmail:gaurav@somemail.com*

最后,我将搜索您的查询中未显示的特定用户 ID,例如:

 UserId:12

这将告诉您他们的电子邮件在被编入索引后设置为什么。

我还有一个问题是您在索引中的 ID 字段中使用什么?如果您有多个具有相同用户 ID 或电子邮件的记录,并且那是您的 ID,那么您将只会获得一条记录(Solr 将更新记录而不是添加新记录)。

于 2011-06-03T13:18:54.023 回答