我已经在 SO 和其他地方在线查看,但没有发现任何特定于我的问题的内容。我想知道其他人经历过吗?他们是如何解决的?
我正在尝试对多字字段进行通配符搜索,这在我输入第一个单词时效果很好,但是一旦我开始输入第二个单词,第一个单词就会被忽略。
我的索引的每个文档都代表一个人,并具有索引字段“名称”。
<field name="name" type="string" indexed="true" stored="true" required="true" />
应该发生什么:
当我输入:“Bruce Rob”时,它应该返回文档“Bruce Robertson”。
怎么了:
当我输入“Bru”时,它会返回“Bruce Robertson”。但是一旦我开始第二个单词,例如“Bruce Rob”,它将开始返回以“Rob”开头的结果——完全忽略之前的单词。
我正在使用 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);