私たちは、要件に適した検索エンジンを見つけるための提案に取り組んでいます。データ構造について説明しましょう。階層データ構造です。基本的には、以下のようなツリーの中に商品の詳細が配置されています。階層ツリーの検索エンジン
階層構造
ベーカリー
パン
ビスケット
パンが
バン&ロールス
コーヒーショップ
スティック Rolyalty
Bevarage
Pakaged食品
上記ツリー構造のために来るの検索要件があります。私たちはさまざまなツールを探求しています。
私たちはmysqlデータベースでネストセットモデルを試しました。したがって、上記のツリーは、左と右の位置を持つネスト集合モデルとして構築されています。同時リクエスト数が増えてスケーラビリティが考慮されるので、リクエストをより速く処理するインメモリ/検索エンジンの点でより多くのユーザーが移動しました。
私たちはluceneをベースにしたApache Solrの開発を始めました。 solrは、階層ノード検索ではなく、フラット構造検索に適していることを理解しています。しかし、私たちは、ツリーをフラットな構造として作成しようとしましたが、私たちは以下の合併症で終わりました。
フラット構造
L1 L2 L3
ベーカリー パン ビスケット
ベーカリー パン パンスティックS
ベーカリー パン平坦で パン&ロール
コーヒーショップ Rolyalty Bevarage
コーヒーショップ Rolyalty Pakagedフード
号構造 我々はSolrの中で、この構造を作成し、私たちは「ベーカリー」で、すべてのレベルにわたって検索を行う一方で、我々は3つのレコード以下
ベーカリー に パン ビスケット
ベーカリー を得ることに終わりますパン パン
ベーカリー パン ブンスティックロールス
当社の要件 当社の要件は一致ノードとその親を送信することです。相互参照を使用している間、1つのノードだけがベーカリーである必要があります。
このケースでは、膨大な量のレコードが存在する可能性があります。右のオプションです。
あなたは上記の検索にアプローチするための良いオプションをお勧めしますか?理想的にはレスポンスもツリーでなければなりません...ツリーを永続化するようなものでしょうか?ノードに基づいて検索し、その親Neo4jを取得することができますか?むしろ検索結果を処理しています。そこに、Solrの6からスタート
https://docs.mongodb.com/manual/applications/data-models-tree-structures/
おかげさまでティラミス。これを見ていた。検索にはより複雑な要件があるため、検索エンジンが提供する検索機能を活用したいと考えています。 – Raju