簡體   English   中英

Sphinx按標簽搜索順序

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

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