[英]Sphinx search order by tags
我有2張桌子
Table 1: Profiles table: p_id, p_title, p_presentation, p_date
Table 2: Tags table: tag_id, profile_id, tag_text
我想檢查標簽以匹配搜索:
例如:標簽:汽車; 紅車 大車
當我搜索“汽車”時,我只想要精確匹配。 我不在乎“紅色汽車”標簽。
對於其余部分,我需要進行常規搜索(SPH_MATCH_EXTENDED2)。
所以我想顯示帶有精確標簽的配置文件(比如說20個配置文件結果),然后顯示下一個結果,例如按p_date排序。
謝謝
從Sphinx文檔 :
例如,查詢“ ^ hello world $”(帶引號,並因此組合了短語運算符和開始/結束修飾符)將僅匹配包含至少一個具有恰好這兩個關鍵字的字段的文檔。
您可以使用開始和結束修飾符來獲取准確的結果。 將此與引號一起使用。
"^car$"
希望這會有所幫助!
我該怎么做...
sql_query = SELECT p_id, p_title, ..., \
GROUP_CONCAT(tag_id) AS tag_ids, \
CONCAT('_SEP_ ',GROUP_CONCAT(tag_text SEPERATOR ' _SEP_ '),' _SEP_') AS tag_text \
FROM Profiles LEFT JOIN Tags ON (profile_id=p_id)
sql_attr_multi = uint tag_ids from field;
然后,您可以使用詞組運算符來搜索確切的標簽,例如
"_SEP_ car _SEP_"
不會匹配“大車”
字段開始/結束修飾符將不起作用,因為每個文檔可以有多個標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.