2016-05-15 5 views
0

私はDatatablesでこの聖書アプリを構築しています。Datatables大規模なデータJSON "スマート検索"、または正規表現のサーバー側、またはより良いアプローチ?

私の問題は、データが大きいことです。合計は約500 MBです。 約32,000行しかありませんが、重いhtml/cssマークアップを含むテキストの段落です。

検索は「スマート検索」(部分一致)である必要があります。

データを格納するための2つの可能な選択肢があるように見えます:

  1. 私はデータはMySQLのテーブルに住むことができます。私はサーバー側の処理を実装する方法を知っていますが、正規表現の検索を実装する方法はわかりません。ここでいくつかの方法でうまくやっています:https://datatables.net/forums/discussion/3343/server-side-processing-and-regex-search-filter/p1(私は十分なPHPを知る方法を理解していません)。

  2. データを1つまたは多分複数のjsonファイルに保存することができます。その後、ユーザーにすべて一度ローカルストレージにダウンロードさせる。次に、Datatablesスマート検索を正常に実行します。私は検索がうまくいくかどうかはわかりません。私はこれをオフラインで試してみましたが、50 MBしか読み込めず、検索はすでにかなり遅いです。 (私のプログラミング知識は非常に限られています)。

顔をしているし、正しい方向に私を導くこと自由に感じてください:)

http://torah.byethost14.com/AdminLTE-master/pages/tables/_talmidimEdition.html

+1

正規表現の検索は必要ありません。全文検索、http://dev.mysql.com/doc/refman/5.7/en/fulltext-search.htmlを使用してください。 – chris85

答えて

0

"ヘビーHTML/CSSのマークアップ"? htmlタグを検索しますか?おそらくそうではありません。だから...

純粋な別の列があります - マークアップなし、HTML、CSSなし、詩数でさえありません。

次に、純粋なテキスト列にFULLTEXTインデックスを追加します。フルテキストの限界に注意してください。

REGEXPは、テーブル内のすべての行を常にスキャンします。

MySQLに追加できるフルテキスト検索エンジンもいくつかあります。 (あなたのアプリに該当するかどうかについてアドバイスはありません)

+0

「ヘビーhtml/cssマークアップ」は明らかに「赤い文字」機能と太字、イタリック体などの他のテキストのためです。しかしあなたは正しいですが、私はhtmlタグを検索しません。 純粋なテキストを含む追加の(非表示の)列は、検索の目的で、3つの列が3つの列に表示されているため、すでにそこにある96000に加えて、32000の聖書の詩を意味します。 どちらの場合でも、FULLTEXTは複数の単語と部分的な単語の一致を許可していますか? –

+0

'FULLTEXT'は、複数の単語を検索することができます。すべての単語を必要とするか、組み込みメトリックによって順序付けすることができます。自動「ステミング」(英語を目指す)と「プレフィックス」検索があります。 –

+0

聖書全体は生テキストのわずか4M文字です。余分な列として追加するのは簡単なことです。どのようにして500MBに達しましたか? 「あなたはイエスの言葉を引用する」という旗が必要な場合がありますか? –

関連する問題