【发布时间】:2015-10-15 12:13:34
【问题描述】:
我正在使用带有 Symfony2 的 Sphinx 来搜索我的数据库中的人。
奇怪的行为是:
我搜索 Jim J,结果是:
- 詹姆斯'吉姆'歌手
- 吉姆亚伯拉罕
- 吉姆·安德森
- 吉姆·巴克斯
- 吉姆·班农
- ...
如果我搜索 Jim Ja,结果是:
- 詹姆斯'吉姆'歌手
- 吉姆·詹森
- 吉姆·贾木许
- ...
如果我只搜索 Jim J,为什么我会错过“Ja”结果,但我会得到所有其他结果?
这里是源代码和索引代码:
source peopleautocomplete {
sql_query = SELECT id, firstName, lastName, pseudonym FROM Person
sql_attr_string = pseudonym
sql_attr_string = firstName
sql_attr_string = lastName
}
index peopleautocomplete
{
source = peopleautocomplete
path = /var/lib/sphinxsearch/data/peopleautocomplete
docinfo = extern
charset_type = utf-8
min_word_len = 2
enable_star = 1
min_prefix_len = 1
}
还有php代码:
<?php
$q = $request->query->get('q');
$aq = explode(' ', $q);
if (strlen($aq[count($aq) - 1]) < 2) {
$query = $q;
} else {
$query = $q . '*';
}
$result = $this->_getSearchEngine()->searchEx($query, 'peopleautocomplete');
?>
有什么想法吗?
【问题讨论】: