2016-04-26 33 views
1

我有一個短語「我的名字是鮑勃」。我想通過查詢「我的n」來匹配它。sphinx:如何搜索帶有通配符的短語?

我的查詢應該如何?我應該配置什麼配置?

min_prefix_len和min_prefix_len沒有給出任何期望的結果。

我將min_word_len設置爲2,但將其更改爲1也沒有幫助。

expand_keywords 1/2沒有區別。

這裏是我的指標配置:

index track 
{ 
    source     = track 
    path     = /var/lib/sphinx/track 
    min_word_len   = 1 
    docinfo     = extern 
    mlock     = 1 
    morphology    = none 
    expand_keywords   = 1 
} 

我試着查詢:

  • 「我的N *」
  • 「我的N」 *
  • 我ñ
  • 「我n「|我的n *
  • 「my n」| 「我的n *」|我的n *

無論如何,我無法匹配「我的名字......」。

回答

3
min_word_len = 1 
min_prefix_len = 1 
expand_keywords = 0 

需要min_prefix_len來啓用通配符搜索。但是想要關閉expand_keywords,因爲這會使所有關鍵字都具有通配符。

然後可以做

"my n*" 
+0

如果我有一個RT指數和編輯到上述我的sphinx.conf,然後做的searchd --stop,searchd的(重啓),我應該能夠查詢在哪裏匹配('wor *')並獲得'單詞'後退?目前沒有發生,我想知道如果我錯過了一步。 – themistoklik

+0

索引需要重新創建。我不認爲可以在活動索引上更改這些設置。對於「索引器」創建的索引,可以使用它重新創建索引。對於RT索引,您將不得不刪除它,更改設置,然後再次重新插入所有數據。有「ALTER RTINDEX索引RECONFIGURE」,但不認爲它會有所幫助 – barryhunter