2009-12-14 68 views
0

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

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

我试着运行在一个小的结果在控制台中设置的SQL,和它的作品:为所有 的MVA列,结果是包含诸如数据的斑点:

2432,35345,342347,8975,453645 

等等。正确使用JOIN/GROUP_CONCAT组合索引生成的两个MVA属性。但是,使用MySQL函数生成的MVA属性会导致 索引无提示失败(看起来很少或没有索引数据)。尽管这是一个查询在控制台的工作绝对没问题..

所以数据格式似乎是相同的,但狮身人面像拒绝的一列。有没有人知道定义MVA属性的任何问题,这可能会帮助我调试 这个?

回答

0

我终于解决了这个问题。这是因为 似乎无关的事情发生的:'sql_attr_str2ordinal'属性似乎受到影响 (或影响)SQL查询/索引的方式我不完全了解。

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

幸运的是,在我的情况,我能够完全删除它,和索引现在似乎工作。

1

我从来没有用过的思维 - 狮身人面像(是一个PHP店在这里),但我不认为你应该group_concat'ing结果。从我的sphinx.conf文件中的一个工作示例:

sql_attr_multi = uint categories from query; SELECT entry_id, cat_id FROM exp_category_posts 
+0

谢谢。但是,GROUP_CONCAT方法似乎是在使用'field'方法对MVA属性进行索引时执行此操作的正确方法。你的示例索引从'查询',你说得对:GROUP_CONCAT不正确。 –

相关问题