Solr搜索忽略第一个单词

时间:2012-02-22 13:18:13

标签: php solr word phrase

我在网上和其他地方环顾四周,但没有发现任何特定于我的问题。我想知道其他人经历过吗?他们是如何解决的?

我正在尝试对一个多字段字段进行通配符搜索,这在我键入第一个单词时工作正常,但是一旦我开始输入第二个单词,第一个单词就会被忽略。

我索引的每个文档代表一个人,并且索引字段为“名称”。

<field name="name" type="string" indexed="true" stored="true" required="true" />

会发生什么:

当我输入:'Bruce Rob'时,它应该返回文件'Bruce Robertson'。

发生了什么:

当我输入'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);

1 个答案:

答案 0 :(得分:1)

它正在名称字段name:bruce中搜索bruce,但由于rob未使用字段名称限定,因此它会针对您架构中定义的默认字段rob*搜索defaultSearchField