0

我正在存储一个 PHP 数组,其中 key=>value 对是用于在网站上构建 jQuery UI 选项卡的信息。

存储在 MySQL 数据库中的字符串如下所示:

a:2:{i:0;a:2:{i:1;s:9:"Info";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 可以索引的旁边添加一个“纯文本”版本。如果做不到这一点,另一个想法是有一个 PHP 脚本定期爬取表格,并使用创建记录的原始 HTTP 请求带外创建“纯文本”版本。使用 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 回答