【问题标题】:Sphinx partial word search, version 2.2.4Sphinx 部分词搜索,版本 2.2.4
【发布时间】:2014-09-22 11:49:50
【问题描述】:

我正在使用 Sphinx 为大量数据提供搜索网页,最近我将 Sphinx 从 v2.1.8 升级到 v2.2.4

我在配置文件中遇到了一些问题,其中之一是“enable_star”选项已被删除,这影响了我搜索页面中的预期结果,所以如果搜索“rea”它不会返回“real madrid”,直到我完成了“真实”的输入,同样的问题以“马德里”结尾。

如果我搜索 'mad' 的预期结果:

  • 皇家马德里
  • 马德里竞技队
  • 疯狂鳄鱼
  • 马迪拉
  • 发疯了

在我的例子中,我得到了“Mad-Croc”和“mad bla”。

这是我的配置文件的一部分:

docinfo = extern
mlock = 0
morphology = stem_en
min_word_len = 1
expand_keywords = 1
dict = keywords

PHP 代码:

$_sphinx = new SphinxClient();

$_sphinx->SetServer('............', '....');

$_sphinx->SetMatchMode(SPH_MATCH_ANY);
$_sphinx->SetFieldWeights(array('auther_name' => 50));
$_sphinx->SetArrayResult(true);
$_sphinx->SetSortMode(SPH_SORT_EXTENDED2, 'cat_priority DESC, @weight DESC');

//////////////////
$_result = $_sphinx->Query($searchTerm . '*');

任何人都可以寻找这个。

【问题讨论】:

    标签: php sphinx


    【解决方案1】:

    您的索引上似乎没有min_prefix_len 设置,建议您添加它。

    虽然不确定您的索引将如何工作,但 min_prefix_len 需要 enable_star=0 才能生效。

    这应该让expand_keywords 发挥它的魔力。在 which poing 建议从查询末尾删除 * 。无论如何,这只会影响输入的最后一个单词,并且 * 应该由 expand_keywords 设置自动添加。

    【讨论】:

    • 是的,它有效,但我收到警告:dict=keywords and prefixes andmorphology enabled,强制 index_exact_words=1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    相关资源
    最近更新 更多