Проблема с поиском - PullRequest
0 голосов
/ 03 июня 2011

Мой XML-файл solr похож на

<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>

Отсюда ясно, что пользователь с идентификатором 12 существует в двух сообществах, но когда я ищу его в solr с помощью запроса "UserEmail: gaurav @ somemail.com ", он возвращает только одну запись, в то время как, если я ищу его со свободным текстом, я имею в виду" gaurav@somemail.com ", он возвращает правильные записи.

Пожалуйста, помогите.
Спасибо,
Gaurav

1 Ответ

0 голосов
/ 03 июня 2011

UserEmail - это строковое поле?Если это так, у вас есть дополнительный «>» в ​​вашем документе после адреса электронной почты: «gaurav@somemail.com>».Строковые поля требуют точного соответствия, если вы не используете *, поэтому вы можете проверить свой XML.Вы также можете попробовать поиск по шаблону, например:

 UserEmail:gaurav@somemail.com*

Наконец, я хотел бы найти конкретный идентификатор пользователя, который не отображается в вашем запросе, например:

 UserId:12

Это скажет вам, на что настроена их электронная почта после того, как она будет проиндексирована.

Еще один вопрос, который у меня есть, - что вы используете для своего поля идентификатора в своем индексе?Если у вас есть несколько записей с одним и тем же идентификатором пользователя или адресом электронной почты и вашим идентификатором, то вы получите только одну запись (Solr обновит запись вместо добавления новой).

...