[英]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.5
和PHP
用作腳本語言。
我如何解決這個問題,(為標簽建立索引)是使用特定的分隔符。 例如,將其索引為
_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-start
和field-end
修飾符。 在這種情況下,您需要在索引時將用逗號分隔的字符串(“非常昂貴”,“豪華”等)分成單獨的字段。
您的搜索查詢將如下所示:
^Very Expensive$
-匹配整個字段
^Expensive$
-與整個欄位不符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.