我应该如何调整 Sphinx?

How I should tune Sphinx?

我制作了我的第一个 FullTextSearch 应用程序。今天终于开始考试了。

'test'

... the Whig national **ticket** victorious, he ... Democrats who **thought** he was ...
... also a self-**tought** architect. He ... and he always **thought** of how ...
... HTML (Hyper **Text** Mark-up ... Сервер HTML Hyper **Text** Markup Language. ...
... ,0 2. Aiced **test** ratio (Quick ratio ... 
... on the first **Tuesday**, after the first ... 

'stop'

... ],Elm); OutText(Elm); **Stop**:=False; End; '2 ... 
.. a crucial **step** in the ... is an increasingly **steep** maturity-related... 
... CHIPSET FEATURES **SETUP** или INTEGRATED ... CHIPSET FEATURES **SETUP** или ... 
... Trisetum, Anisantna, **Stipa** и ... многие виды **Stipa**, Stipagrostis), что ...

我的配置:

source src1
{
type = csvpipe
csvpipe_command = /usr/bin/php /var/www/html/import.php 
csvpipe_field_string = title
csvpipe_field_string = content
csvpipe_attr_string  = path
}

 index test1
{   source          = src1
path            = /var/lib/sphinxsearch/data/test1
mlock           = 0
# morphology        = stem_en, stem_ru, soundex
min_word_len    = 2
html_strip      = 0
}

我评论了形态字符串并重新加载 Sphinx,但结果相同。看来形态学对我还是有用的。

可能最重要的是

morphology = stem_en, stem_ru, soundex

形态学是一个非常强大的功能,因为它 'morphs' 词进入索引(​​并且在查询中,所以可以匹配!),使用各种规则。

在您的情况下,您启用了词干提取,其中 'normalizes' 词尾,但也有 soundex,这是一种 'sounds similar' 算法。我相信是为英语设计的,所以不知道它在俄语上的表现如何!

所有这些意味着将获得 'similar' 匹配,而不仅仅是精确的单词匹配。

(test 只是一个与其他词发音相似的词,您的 hyper 示例是一个发音更独特的词)


也意识到它可能只是一个测试脚本,但可以一次将多个文档传递给buildExcerpts。所以它应该更有效率,编译文档并调用 buildExcepts 一次。

但更有趣的是,当您从 sphinx 属性获取文本时,可以在主查询中使用 SNIPPETS() sphinx 函数(在 setSelect()! 中)。所以你不必收到全文,只需发回给 sphinx。即狮身人面像将在内部从属性中获取文本。更高效!