簡體   English   中英

Sphinx-用逗號分隔的字符串搜索短語

[英]Sphinx - Search phrase in comma separated string

Sphinx ,我想用逗號分隔的字符串搜索短語。

例如,用逗號分隔的字符串是Very Expensive,Luxury,Romance,Trendy

短語"Expensive"不匹配此記錄,但短語"Very Expensive"應匹配。

嘗試在sphinx配置文件中設置“ 短語邊界”選項,並再次旋轉索引器,但是輸出沒有變化。

phrase_boundary                 =  U+002C # comma
phrase_boundary_step            =  100

我將Sphinx 2.0.5PHP用作腳本語言。

我如何解決這個問題,(為標簽建立索引)是使用特定的分隔符。 例如,將其索引為

_SEP_ Very Expensive _SEP_ Luxury _SEP_ Romance _SEP_ Trendy _SEP_ 

現在可以運行查詢"_SEP_ Very Expensive _SEP_" (帶引號),它將很好地匹配,但是查詢"_SEP_ Expensive _SEP_"將不匹配:)


(可以在sql_query動態構建它,例如

... , CONCAT('_SEP_ ',REPLACE(labels,',',' _SEP_ '),' _SEP_') AS labels, ...

(至少對於mysql數據源而言)

您可以使用擴展查詢語法來使用field-startfield-end修飾符。 在這種情況下,您需要在索引時將用逗號分隔的字符串(“非常昂貴”,“豪華”等)分成單獨的字段。

您的搜索查詢將如下所示:

^Very Expensive$ -匹配整個字段

^Expensive$ -與整個欄位不符

暫無
暫無

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

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