将 Sphinx 索引转换为 Table?
Convert Sphinx Index to Table?
为了将数百万条记录转换成 usable/searchable sphinx 索引,我每天都要进行相当紧张的 sphinx 配置。
但是我现在需要将其导出为 xml 文件,如果不是,则导出为新的 table。
当然,我也可以在 Mysql 中完成我在 Sphinx 索引中所做的工作 most/all,但如果我刚刚生成 Sphinx 索引,这似乎有很多不必要的工作。我能以某种方式 'export' 索引到 table 还是全文索引现在对我来说作为可读数据基本上没用了?
嗯,这取决于你想要什么。
Sphinx 索引本质上是一个倒排索引。 https://en.wikipedia.org/wiki/Inverted_index
... 因此它有助于查找哪个 'documents' 包含给定的单词,它会将其随意存储为列表。 (非常适合查询的基本功能!只需 sphinx 就可以完成 multi-word 查询以及排名结果的繁重工作)
...这样的结构不是按文档组织的。所以不能直接获取给定文档中的单词列表。 (计算 htat 必须遍历整个数据结构)
但是如果它是你想要的倒排索引可以用 indextool
转储它
http://sphinxsearch.com/docs/current.html#ref-indextool
... 例如 --dumpdict
甚至 --dumphitlist
命令。
(尽管 dumpdict 仅适用于 dict=keywords
索引)
您可能对 indexer
上的 --dump-rows
选项感兴趣
http://sphinxsearch.com/docs/current.html#ref-indexer
... 它在索引期间转储文本数据,从 mysql 检索。
它不会从索引本身转储,并且不受所有 'magic' 标记化和规范化 sphinx 的影响(charset_table
/wordforms
等)
回到indextool
还有--fold
、--htmlstrip
、--morph
,它们可以在流中用来标记文本。
理论上可以使用这些来使用 sphinx 的 'power',以及来自实际索引的设置,以创建处理过的数据集(类似于 sphinx 正在生成索引)
为了将数百万条记录转换成 usable/searchable sphinx 索引,我每天都要进行相当紧张的 sphinx 配置。
但是我现在需要将其导出为 xml 文件,如果不是,则导出为新的 table。
当然,我也可以在 Mysql 中完成我在 Sphinx 索引中所做的工作 most/all,但如果我刚刚生成 Sphinx 索引,这似乎有很多不必要的工作。我能以某种方式 'export' 索引到 table 还是全文索引现在对我来说作为可读数据基本上没用了?
嗯,这取决于你想要什么。
Sphinx 索引本质上是一个倒排索引。 https://en.wikipedia.org/wiki/Inverted_index
... 因此它有助于查找哪个 'documents' 包含给定的单词,它会将其随意存储为列表。 (非常适合查询的基本功能!只需 sphinx 就可以完成 multi-word 查询以及排名结果的繁重工作)
...这样的结构不是按文档组织的。所以不能直接获取给定文档中的单词列表。 (计算 htat 必须遍历整个数据结构)
但是如果它是你想要的倒排索引可以用 indextool
转储它
http://sphinxsearch.com/docs/current.html#ref-indextool
... 例如 --dumpdict
甚至 --dumphitlist
命令。
(尽管 dumpdict 仅适用于 dict=keywords
索引)
您可能对 indexer
上的 --dump-rows
选项感兴趣
http://sphinxsearch.com/docs/current.html#ref-indexer
... 它在索引期间转储文本数据,从 mysql 检索。
它不会从索引本身转储,并且不受所有 'magic' 标记化和规范化 sphinx 的影响(charset_table
/wordforms
等)
回到indextool
还有--fold
、--htmlstrip
、--morph
,它们可以在流中用来标记文本。
理论上可以使用这些来使用 sphinx 的 'power',以及来自实际索引的设置,以创建处理过的数据集(类似于 sphinx 正在生成索引)