0

キー=>値のペアがWebサイトでjQueryUIタブを構築するために使用される情報であるPHP配列を格納しています。

MySQLデータベースに保存されている文字列は次のようになります。

a:2:{i:0; a:2:{i:1; s:9:"情報";i:2; s:643:"<h2><strong>このセクションはfooについてです</strong> </ h2> <p> <strong> Lorem ipsum ... ";} i:1; a:2:{i:1; s:14:"詳細"; i:2; s:465:" < p> Lorem ipsum ... ";}}

(フォーマット上の理由で長いコンテンツを切り捨てたため、有効なシリアル化された配列またはhtmlではありません)

このコンテンツをサイト検索の目的でSphinx(フルテキストインデクサー)にフィードできるようにしたいと思います。基本的に、Sphinxはデータベースのコンテンツを取得し、指定した構成オプションに従って、データベースのコンテンツにインデックスを付けます...私が疑問に思っているのは、MySQLまたはSphinxのいずれかでシリアル化情報とhtmlを削除する良い方法があるかどうかです。プレーンテキストのみがインデックス付けされるようにタグを付けます。

4

2 に答える 2

1

おそらく最善の策は、PHPのシリアル化された形式のみの保存を停止、Sphinxがインデックスを作成できる「プレーンテキスト」バージョンを追加することです。それができない場合、別のアイデアは、定期的にテーブルをクロールし、レコードを作成した元のHTTPリクエストを使用して「プレーンテキスト」バージョンを帯域外で作成するPHPスクリプトを作成することです。unserialize()とstrip_tags()を自由に使用できるので、これはかなり些細な問題になります。

于 2009-09-22T00:53:19.487 に答える
1

Html-Tagの問題については、これをsphinx-configに入れてください:html_strip = 1

html_stripの手動セクションへのリンク

索引からシリアル化情報を取り除く方法が見つかりませんでした。(しかし、私は同じ問題を抱えています)

于 2009-09-24T15:56:24.657 に答える