最近學了一下搜索開發的框架lucene,順便也把在學習過程當中積累的測試點給梳理一下。算法
畢竟身爲一名測試人員,習慣性的會對測試點進行備份的。緩存
先看環境配置框架
對於大數據量的搜索的項目開發,那應該是離不開分佈式的集羣部署吧。分佈式
部署學習
集羣模式:1個merge和N個searcher測試
單機模式:1個merge和1個searcher大數據
節點的控制3d
啓動節點blog
中止節點排序
啓動部分節點
宕機的處理
節點策略,是不是hash一致的環形算法
宕機後數據是否有備份不影響使用
備份系統的切換
動態的切換主從系統
基本功能
從整個搜索的體系來看,大體分爲二個部分
1 索引的創建機制
3 查詢結果的聚合體系
索引體系
分詞解析策略
咱們知道索引的創建會經歷單詞的拆分與stopword、原型、提取常量等解析過程後行程;而對於結果的聚合,其實從查詢開始也會經理關鍵字的拆解,隨後是結果的聚合
聚合中須要關注:是否遺漏、是否重複、權重排序、敏感詞過濾等
那麼針對這些策略,咱們須要配置相應的測試用例。
分詞策略
1 大小寫轉換 ALIBABA--->alibaba
2 原型形式 learned--->learn
3 無心義的字 has a ---> 刪除
4 關聯詞 table tennis --->table--tennis (拆分沒法搜索到)
....
....
同理在搜索的時候,關鍵詞也會經歷上面的統一的一個策略邏輯
即時更新策略
1 在原來基礎上更新
2 擦除所有後更新
查詢結果體系
1 是否命中緩存
2 是否經歷了攔截器的攔截(擦除敏感信息)
3 查詢排序的策略權重
4 即時更新的內容是否被搜索到
5 結果是否重複
6 結果是否遺漏