來源:互聯網
上載者:User
關鍵字
php
elasticsearch
solr
搜尋api
mysql
想建立個垂直類的問答庫
用php+mysql(後期可能會用上redis或者mogodb)
牽涉到一些專業的詞庫,並且後期希望能夠根據使用者的語義來調整搜尋結果
目前看了下
主流的 迅搜,sphonix,elasticsearch,solr
時間有限,用哪個開發成本比較低?
用過的夥伴 給個建議 謝謝·~
回複內容:
想建立個垂直類的問答庫
用php+mysql(後期可能會用上redis或者mogodb)
牽涉到一些專業的詞庫,並且後期希望能夠根據使用者的語義來調整搜尋結果
目前看了下
主流的 迅搜,sphonix,elasticsearch,solr
時間有限,用哪個開發成本比較低?
用過的夥伴 給個建議 謝謝·~
四個都用過,開發成本基本一致,因為這四個都有主流語言的sdk可以直接用,要說成本就是這四個軟體的配置成本,但都比較簡單。
說下大致區別
xunsearch內建中文分詞使用的是scws,分詞效率準確率都不錯,而且帶詞性。索引建立速度還可以。查詢效率高。但是由於它基於xapian,缺少一些文法糖。且我們在重建索引時出現過丟失索引的情況。當時的資料規模大概在千萬層級,mysql 中資料大小為35G左右。不知道是不是因為是早期版本的原因。
sphinx建立索引相對較慢,沒有內建中文分詞,但是可參考coreseek,也可自己配分詞器。支援很多主流分詞器。查詢效能較弱,且分布式支援不太完美。功能有部分缺失,如xunsearch中的搜尋摺疊。但優點是容易上手,相對穩定。
solr/es 這兩個整體上差不多,但國內目前solr資料要比es多,中文分詞支援的也好,常見的如ik,jieba等分詞都有支援。效率這兩者差不多,查詢和建立都很快。都有很好的分布式方案。個人感覺es的分布式要好一點,至少配置上比solr簡單。solr5之後架構也做了調整,但目前國內很多資料還是基於solr4的。
其實索引更換和遷移的成本並不高,建議資料規模不大的時候可以先用sphinx,簡單穩定。當出現效能瓶頸時,不建議折騰sphinx的分布式,而直接換用solr或es就行。xunsearch個人感覺還屬於玩具層級,當然我這種結論是基於早期版本得出的,現在的情況不是很瞭解。
sphinx簡單 elasticsearch/solr 功能多, 對於搜尋引擎來說重要的是一個相對準確的詞庫,用什麼搜尋都差不多
推薦sphinx,操作簡單