[英]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.