私は自分のlaravelアプリケーションで検索機能を実装しようとしています。アンゴラは、データのセキュリティ上の問題のために私の上司から好まれていません。それ以外の良い選択肢は、弾性検索を実装することと、もう1つはmysqlの全文検索を使用することです。私は賛否両論が何であるか分かりませんが、いくつかの場所で弾力的な検索がより良い選択肢になるはずですが、これまでに検索していないので、私が働いていることを理解したいと思います。エラスティック検索の全文とmysqlの全文?
私はMySQLの要件を見ていて、InnoDbエンジンで5.6以上でしか実装できないようです。それ以外の場合は、char型とtext型フィールドの全文索引のみを実装できます。私は、エラスティック検索でどのようなフィールドが許可されているのかよく分かりません。
私は私のようなものを持って知っている。そして、私はのような何かを推測する
DB::statement('ALTER TABLE posts ADD FULLTEXT search(title, body)');
:
SELECT * FROM posts
WHERE MATCH (title, body)
AGAINST ('foo' IN NATURAL LANGUAGE MODE);
は、このためにそこに雄弁実装であるか、私が使用して手動でこれを実行する必要がありますDBファサード? Eloquent実装がない場合、この機能を備えたサードパーティのパッケージがありますか?
これ以外にも、私は実際にコメントやタグなどのような関連テーブルを検索する必要があります。どのようにしてテーブル間でインデックスを作成することは可能ですか?不可能ですか? ESで、MySQLのテーブル間でインデックスを作成することができない場合は、これ以上来ることができるものはありますか?
私は弾性検索に対するMySQLフルテキスト検索を使用して、他の賛否両論はありますか?
@jeremyが正しいです。複雑な検索機能を持たない限り、新しいスタックを作成するのを避けるためにmysqlを使うことができます。検索ユースケースのいくつかの例を分かち合うことができれば、より多くのことができます。 – user3775217