在sphinx的請求語法中, 有一種proximity distance的方式: 如下
"yes no"~2
在其文件中的解釋為
比如上面的, yes和no之間的字元長度不能高於2,如果是三個字元
"yes no hello"~6
表示能匹配到的字元中包含著三個字元之間的最大長度不能超過6個。
如果文件是中的字元為: "yes hello world you are great man no"是可以匹配到, 因為最大長度是在yes和no之間, 且長度不大於6;
而如果文件中的字元為: "yes hello world you are great man really no"是不會被匹配到的,因為yes和no之間的長度大於6了
另一種quorum matching operator,也是用於模糊匹配
"hello world"/0.7
前面的引號中的是要查詢過濾的關鍵字,後面的0.7表示要匹配到的文件至少包含引號中的字串的百分比(也可以是整數,表示要匹配到文件包含引號中的字串的數量),比如這裡的0.7,關鍵字是兩個,所以匹配出來的文件中至少要包含1.4個引號中的字元,1.4是小數,取整應該是2個,所以要求文件中至少有兩個引號中的字元。
假如你要查詢的關鍵字有4個,希望查詢到至少包含其中的3個字元的時候,可以用0.5(不包括)~~0.75這個段的百分比sphinx 可以像mysql一樣去執行索引查詢。
連線資料庫
mysql -h0 -p9306這裡的-h表示的是sphinx服務所在的主機ip, 0即表示當前主機, -p(大寫)表示sphinx服務的埠,這個埠是sphinx的mysql協議支援的埠,配置項seardchd, 配置行是:
listen = localhost:9306:mysql41這樣就可以像mysql一樣查詢資料了
例如:
select * from tags where match('@title "hello world"/0.5');請注意: 這種方式查詢結果預設只會顯示20個,之後再執行
show meta;我這裡再說明一下上面查詢中的match語法中的引數含義
@title 是期待使用title屬性過濾(這個要在sphinx的索引配置中指定sql_field_string);這個其實可以放到上面的擴充套件語法裡,暫時寫在這裡。後面跟著的請看上面的quorum matching operator
mysql 筆記 不定期更新
完整例項 mysql h192.168.1.123 uroot pmypwd ddb used e select id from tablename limit 1000 tmp ids.csv 這裡要指定 d引數為要操作的資料庫名稱 e引數後面跟查詢語句,最後重定向到本地檔案2 服務端的mysql...
不定期更新部落格
也算是乙個真正程式設計生涯的起點,聽說大神都有自己的部落格。csdn部落格主要是作為乙個詳細的記錄場所,類似log的verbose檔,細緻入微,無孔不入,因此可能更新頻率較高,質量也相對較低。我的意思是將csdn這裡的部落格作為日後更加精煉的部落格 比如個人blog站或者github pages 的...
C STL 不定期更新
一 set set的特性是,所有元素都會根據元素的鍵值自動排序,set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。include初始化 int arr 5 set iset arr,arr 5 或者只定義...