Я осмотрел SO и другие места в Интернете, но не нашел ничего конкретного для моей проблемы. Мне было интересно, кто-нибудь еще испытал это? И как они решили?
Я пытаюсь выполнить поиск по подстановочному символу для поля из нескольких слов, которое прекрасно работает, когда я набираю первое слово, но как только я начинаю набирать второе слово, первое слово игнорируется.
Каждый документ моего индекса представляет одного человека и имеет индексированное поле «имя».
<field name="name" type="string" indexed="true" stored="true" required="true" />
Что должно произойти:
Когда я набираю: «Брюс Роб», он должен вернуть документ «Брюс Робертсон».
Что происходит:
Когда я набираю 'Bru', возвращает , возвращает 'Bruce Robertson'. Но как только я начну второе слово, например «Брюс Роб» начнет возвращать результаты, начинающиеся с «Роб» - полностью игнорируя слово, которое было раньше.
Я использую клиентскую библиотеку PHP. Сгенерированный запрос выглядит так:
fq=type%3Aperson&sort=id+desc&wt=json&json.nl=map&q=name%3Abruce+rob%2A&start=0&rows=3
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ: PHP код
$options = array('fq' => "type:person",'sort' => 'id desc');
$results = $this->solr->search('name:' . $val . '*', 0, 3, $options);