0

Sphinx で MVA (複数値) 属性を作成するために期待されるデータ形式を理解できる人はいますか?

GROUP_CONCATと照合されたコンマ区切りの整数の行を blob として返す MySQL 関数があります 。さらに 2 つの MVA 属性があり、JOIN ステートメントの結果をGROUP_CONCATBLOB として照合します (ThinkingSphinx によって生成されます)。これらはすべてsql_querymy sphinx.conf に含まれています。

コンソールで小さな結果セットに対して SQL を実行しようとしましたが、うまくいきました。すべて の MVA 列について、結果は次のようなデータを含む BLOB です。

2432,35345,342347,8975,453645

等々。JOIN/GROUP_CONCAT組み合わせインデックスで正しく生成された 2 つの MVA 属性。ただし、MySQL 関数で生成された MVA 属性により、インデックス作成がサイレントに失敗します (データがほとんどまたはまったくインデックス作成されないように見えます)。これは、クエリがコンソールで完全に正常に機能しているにもかかわらずです..

したがって、データ形式は同じように見えますが、Sphinx は列の 1 つを拒否しています。これをデバッグするのに役立つ可能性のある MVA 属性を定義する際の落とし穴を知っている人はいますか?

4

2 に答える 2

1

私は thinking-sphinx を使ったことはありません (ここでは PHP ショップです) が、結果を group_concat するべきではないと思います。私の sphinx.conf ファイルの 1 つの実例から:

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 に答える