0

任何人都可以帮助我了解在 Sphinx 中创建 MVA(多值)属性的预期数据格式吗?

我有一个 MySQL 函数,它返回一行以逗号分隔的整数,用 GROUP_CONCAT, 作为 blob 进行排序。我还有两个 MVA 属性,它们将 JOIN 语句的结果与GROUP_CONCAT, 作为 blob(由 ThinkingSphinx 生成)进行整理。这些都包含在我sql_query的 sphinx.conf 中。

我尝试在控制台中的一个小结果集上运行 SQL,它可以工作:对于所有 MVA 列,结果是一个包含以下数据的 blob:

2432,35345,342347,8975,453645

等等。JOIN使用/GROUP_CONCAT组合索引正确生成的两个 MVA 属性。但是,使用 MySQL 函数生成的 MVA 属性会导致索引失败(似乎很少或没有数据被索引)。尽管查询在控制台中工作得非常好..

所以数据格式似乎是相同的,但 Sphinx 拒绝了其中一列。有没有人知道定义 MVA 属性的任何陷阱,这可能有助于我调试这个?

4

2 回答 2

1

我从来没有使用过thinking-sphinx(这里是PHP 商店),但我认为你不应该对你的结果进行group_concat。从我的一个 sphinx.conf 文件中的一个工作示例:

sql_attr_multi = uint categories from query; SELECT entry_id, cat_id FROM exp_category_posts
于 2009-12-14T13:45:36.753 回答
0

我最终解决了这个问题。它的发生是因为一些似乎无关的事情:“sql_attr_str2ordinal”属性似乎以我不完全理解的方式影响(或影响)SQL 查询/索引。

见:http ://www.sphx.org/forum/view.html?id=2867

幸运的是,就我而言,我能够完全删除它,并且现在索引似乎可以工作。

于 2009-12-15T15:52:03.147 回答