sphinx 筆記 不定期更新

2021-06-28 09:26:24 字數 1451 閱讀 8295

在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 或者只定義...