В настоящее время я экспериментирую с Solr и пытаюсь получить запрос, чтобы получить только те документы, для которых совпадают все предоставленные токены.
Например, предположим, у меня есть поле с именем data , которое при индексации использует PatternTokenizer для разделения входящей строки на символ-разделитель, например, '/'. Для входной строки "Foo / Bar / Baz" я бы ожидал получить три токена (если я правильно понимаю документы!). Добавив еще несколько документов, я получаю:
Foo / Bar / Baz ==> Foo, Bar, Baz
Foo / Far / Faz ==> Foo, Far, Faz
Бу / Бар / Баз ==> Бу, Бар, Баз
Когда я прихожу, чтобы запросить это поле, я получаю результаты, которых я не ожидал. Используя запрос:
+data:Foo/Bar
Я ожидал бы, что это будет соответствовать документам, которые содержат и Foo и Bar, но вместо этого он возвращает документы, которые содержат по крайней мере Foo или Bar, забивая их с обоими терминами выше. Кроме изменения запроса так, что он напоминает:
+data:Foo +data:Bar
есть ли способ изменить поведение так, чтобы вместо сопоставления всех трех моих примеров документов он совпадал только с одним?
Этот эксперимент был выполнен с использованием ночных сборок Solr 4.0.
Спасибо