solr搜索问题

时间:2011-06-03 06:22:41

标签: solr solrnet

我的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”,它会返回正确的记录。

请帮助。
谢谢,
拉夫

1 个答案:

答案 0 :(得分:0)

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

 UserEmail:gaurav@somemail.com*

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

 UserId:12

这将告诉您电子邮件在编入索引后的设置。

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