[解決済み] スタンドアロン型全文検索サーバーの選択。SphinxかSOLRか?[クローズド]
2022-05-01 10:34:28
質問
以下のプロパティを持つスタンドアロン型全文検索サーバーを探しています。
- 複数のクライアントからの検索要求に対応できるスタンドアロン・サーバーとして動作すること。
- SELECT id, text_to_index FROM documentsのようなSQLクエリの結果をインデックス化することで、一括インデックス化が可能であること。
- フリーソフトウェアであること、データベースとしてMySQLを使用し、Linux上で動作すること。
- 高速であること(MySQL の内部全文検索は除外)。
これらの特性を持つ代替品として私が見つけたのは
- Solr (Luceneベース)
- ElasticSearch (これもLuceneがベース)
- スフィンクス
私の質問です。
- 比較するとどうですか?
- 代用品を見逃していませんか?
- ユースケースはそれぞれ異なると思いますが、私なら絶対こうするというケースはありますか? ない あるパッケージを使いたいのですが?
解決方法は?
私はSolrを2年近くうまく使っていて、Sphinxは使ったことがないので、明らかに偏った見方をしています。 しかし、ドキュメントや他の人を引用することで、客観性を保つように努めます。また、私の回答にはパッチをつけます :-)
類似している点
- SolrとSphinxは、どちらもすべての要件を満たしています。これらは高速で、大量のデータを効率的にインデックスし、検索するように設計されています。
- どちらもトラフィックの多いサイトが数多く利用しています( ソルア , スフィンクス )
- いずれも商用サポートを提供しています。( ソルア , スフィンクス )
- どちらも、いくつかのプラットフォーム/言語用のクライアント API バインディングを提供しています ( スフィンクス , ソルア )
- どちらも分散して高速化・大容量化することが可能です( スフィンクス , ソルア )
以下は、その相違点です。
- Solrは、Apacheのプロジェクトであるため、当然Apache2ライセンスです。 SphinxはGPLv2です . This means that you ever need to embed or extend (not just "use") Sphinx in a commercial application, you'll have to buy a commercial license ( 理性 )
- Solrは 簡単にエンベッダブル をJavaアプリケーションで使用することができます。
- SolrはLuceneの上に構築されています。 8年前 を持つ 巨大 ユーザーベース (これはほんの一部です)。Luceneが新機能やスピードアップをするたびに、Solrもそれを享受しています。Solr にコミットしている開発者の多くは、Lucene のコミッターでもあります。
- SphinxはRDBMS、特にMySQLとより緊密に統合されます。
- Solrは、以下のことが可能です。 Hadoopと統合し、分散アプリケーションを構築
- Solrは Nutch と統合し、クローラーを備えた本格的なウェブ検索エンジンを素早く構築することができます。 .
- Solrは Microsoft Word や PDF などの独自形式のインデックスを作成します。 . スフィンクス できない .
- Solrには スペルチェッカー .
- Solrには ファセットのサポート . Sphinxでのファセット 手間がかかる .
- Sphinxはフィールドデータの部分的なインデックス更新を許可していません。 .
- Sphinxでは。 すべてのドキュメント ID は一意な 0 ではない符号付き整数値でなければなりません。 . ソル は、多くの操作で一意なキーを必要としません。 であり、ユニークキーは整数または文字列のいずれかである。
- Solrは フィールドの折りたたみ (現在は追加パッチとしてのみ)類似した結果の重複を避けることができます。Sphinxはこのような機能を提供していないようです。
- 一方 Sphinx はドキュメント ID のみを取得するように設計されています。 Solrでは、あらゆる種類のデータを含むドキュメント全体を直接取得できるため、外部のデータストアに依存せず、余分なラウンドトリップを省くことができます。
-
Solrは、埋め込み使用時以外は
Javaウェブコンテナ
TomcatやJettyのような
特定の設定やチューニングを追加する
(または
同梱のJetty
で起動するだけです。
java -jar start.jar
). Sphinxには追加の設定はありません。
関連する質問
関連
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み】全文検索エンジンの比較 - Lucene、Sphinx、Postgresql、MySQL?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlのデータ圧縮性能比較 詳細
-
MySQL インタビューの質問 - ハッシュインデックスを設定する方法
-
MySQLによる既存テーブルのパーティショニングの実装
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] ElasticSearch、Sphinx、Lucene、Solr、Xapian。どのような用途に適しているのか?[クローズド]
-
[解決済み】全文検索エンジンの比較 - Lucene、Sphinx、Postgresql、MySQL?