特定のテーブルで50以上のカラム(varcharとintの両方)を検索する方法が必要です。私は人々がLuceneとSphinxを推薦しているのを見たことがあるが、私はそれらを使用する方法を知りませんし、MySQLのFull-Textでは16列以上のvarcharとint列を組み合わせることはできません。PHPとMySQLで多数のカラムを検索する
2
A
答えて
2
変更がテーブルに反映される前にテーブルが大きく更新されない場合や、LONGTEXT
のすべての列を組み合わせた定期的に再生成された派生テーブルを作成し、その全文索引。
0
テーブルをピボット回転させて少しだけ切り取ることを検討してください。すべてのvarcharカラムを取り、データを1つのテーブル "Search_Strings"に格納します。 int型の列に同じ操作を行います。
元のテーブル
id
always_field1
always_field2
varstring1
...
varstringx
int1
...
inty
新しいmain_table(元のテーブルと同じ行数が、非常に少数の列)
id
always_field1
always_field2
Search_Strings(
id (FK to main_table)
old_column_name
string_value
を
検索結果
id (FK to main_table)
old_column_name
int_value
この設定では、full_extインデックスはstring_valueにのみ必要です。申し訳ありませんが、私はそれらに精通していないので、私はスフィンクスやLuceneと何かを提案することはできません。
+0
Sphinxを使ってこの文字列テーブルのインデックスを作成するには、 "文字列"テーブルに一意のIDキー(シーケンスを考える)があることを確認するだけです。 cf:http://www.postneo.com/2009/02/06/sphinx-search-with-postgresql –
関連する問題
- 1. phpとmysqlで検索
- 2. MySQLとPHP:複数のキーワード検索
- 3. mysql phpで検索
- 4. ライブ検索PHPとMySQL
- 5. PHP検索MySQLの
- 6. 2つのmysqlカラムを1つの変数にまとめて検索する
- 7. mySQLプログラムエラーでPHPを検索
- 8. mysqlデータベース内の複数のMySqlテーブルを検索するPHP
- 9. nullカラムのmysql全文検索
- 10. MySQLの2つのカラムで1つの値を検索する
- 11. PHPとMySQLでの検索結果
- 12. 複数の変数で検索するPHP/Mysql
- 13. Mysqlテーブルの1つのカラムで複数の値を検索する
- 14. PHP/MySQL - 検索クエリ
- 15. PHP MySQL検索クエリ
- 16. php mysql検索クエリ
- 17. PHP MYSQL:検索ワードクエリ
- 18. PHP/MySqlで複数のキーワードを使用して検索する
- 19. 検索PHPでドロップダウンする方法mysql
- 20. スフィンクスPHP一対多検索
- 21. PHPのmysqlの検索アドバイス
- 22. PHPで多次元配列を検索
- 23. PHP MySQl検索エンジンのアドバイス
- 24. 予約の検索(MYSQL + PHP)
- 25. mysqlのPHP検索エンジン
- 26. PHP MYSQLチェックボックスの検索
- 27. PHP MySQLのLIKE検索
- 28. PHP/MySQLリレーショナルデータベーススキーマの検索コードとロジック
- 29. AJAX PHPとMYSQLライブ検索のヘルプ!
- 30. MySQLとPHPの検索結果
問題は、この時点で約65,000行があり、毎週約500個が追加されていることです。 –
500がランダムではなくバッチ内にある場合、バッチの後に派生テーブルを再生成するのは簡単です。しかし、インサートがランダムな時間に来ると仮定すると、週500は平均しても1時間に1時間に過ぎない。何らかの変更が加えられた場合に派生テーブルを再生成し、特別な痛みを感じないような、毎分のcronジョブを実行する可能性があります。 – chaos
MySQL FULLTEXTインデックスを持つ非正規化テーブルの場合+1。 私は最初のオプションとしてsphinxを見ています。 –