У меня есть следующие проиндексированные документы в моей настройке Solr 4.0 с их полем заголовка, содержащим документы -
- Работать
- Топология
- ... ‹ многое другое >
У меня есть поле заголовка как solr.StrField (строка). У меня также есть copyField поля title в другом поле title_token типа solr.TextField с токенизатором StandardTokenizerFactory и фильтром LowerCaseFilterFactory.
Когда пользователь ищет только To, чтобы получить документы, title которых начинается с To, я запрашиваю Solr с title:To*. Работает отлично. Отображает документы 1 и 2.
Однако, когда пользователь ищет To (с пробелом после «Кому»), я отправляю этот запрос на Solr, например title:To * (с пробелом между «Кому» и *). В идеале должен отображаться только 1-й документ. Однако все документы отображаются.
Когда я запрашиваю title:To * вместе с &debugQuery=true, запрос анализируется как "parsedquery_toString":"title:to title:*".
Поскольку title:* будет отображать все документы, отображаются все документы.
Как мне запросить To *, который даст мне все документы, имеющие title, начинающиеся с To (с пробелом после To), в этом случае должен отображаться документ 1?
Я использую Embedded Solr server на своем Web App на Tomcat. Я использую solrj для запроса и получения результатов.