簡體   English   中英

Sphinx搜索詞組僅在所選列中

[英]Sphinx search phrase only in selected column

我嘗試用Sphinx搜索

search --index goods "new @category_id 711"

由於“ @category_id 711”而以搜索錯誤結尾,但這應該是正確的方式,確切列中的搜索方式請參見http://sphinxsearch.com/docs/current.html#extended-syntax

但是在sphinx.conf中是

 sql_query = SELECT id, name, category_id FROM ...

 sql_attr_uint = category_id

不想設置

 $sphinx->setFilter('category_id', array(711), false);

bucause僅將結果限制為類別711

我需要為category_id添加權重,並搜索名稱中的其余文本

$sphinx->SetFieldWeights(array('name' => 1000, 'category_id' => 250));

但搜索“ 711”時不應在“名稱”中

這里發生的事情很少!

“搜索”命令默認為搜索模式,未擴展。 因此,如果使用擴展語法,則必須專門啟用擴展模式。 -e


在配置文件中,已將其設為屬性。 @field語法中無法訪問屬性。 即它們不是全文索引,所以您不能通過它們查詢。

因此,如果要在搜索查詢中使用它,則需要創建一個字段。 (不是屬性)。


然后可以執行查詢new @category_id 711但這意味着查詢必須匹配new AND @category_id 711 ,因此其行為與setFilter完全相同。

如果您只想“提升”該類別,則需要重新排列查詢,以便僅在“ new”上匹配,但包含類別位,以便隨后可以影響排名

(new) | (new @category_id 711)

例如。

但是隨后,您還需要更改RANKING模式,以便更改排名。 嘗試各種模式來決定您喜歡哪種。 SPH_RANKING_WORDCOUNT是最基本的,但可能不夠好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM