0

某スフィンクスヘッドケースに当たったようです。特定のテーブルにインデックスを付けています。これにより、レコードごとに ≈ 140 のインデックス付きフィールドが生成されます (信じてください、それらはすべて重要です)。そのうちの 27 * 3 については、それを生成するサブクエリ自体がすでにかなり大きくなっています。これにより、development.sphinx.conf (17 行) に対して大量のクエリが生成されます。結果が得られるので、データベースで直接テストしました。しかし、これは索引付けできません。文句を言う

「エラー: インデックス 'vendor_song_core': sql_query_range: : マッチ フェッチ クエリにマクロ '$start' が見つかりません。」

ですが、これが実際に意味することは、デーモンが完全なクエリをロードしていないということです。どうやらそれには長すぎます。私の仮定は正しいですか?もしそうなら、私はそれを回避できますか (どこかで更新できる魔法の max_query_length フィールドのように)?

4

2 に答える 2

0

これを行う実際の方法はないようです。Sphinx はクエリ サイズの制限をソース コードで直接定義しているため、これを行う唯一の方法は、ソース コードを編集してローカルでコンパイルするか、barryhunter が述べたように定義できる限り実行することです。ビュー。この問題の詳細については、barryhunter が提供するリンクを参照してください。

于 2013-01-17T13:54:47.850 に答える
0

Sphinxフォーラムからコピーされた回答... http://sphinxsearch.com/forum/view.html?id=10403

「長い」クエリ定義を mysql VIEW に移動します。

次に、sql_queryは本当に短くすることができます:)

つまり、ビュー自体にはすべての列名が含まれており、sql_query では "SELECT * FROM" を使用できます。同様に、多数のテーブルを結合する場合、すべてビューに移動できます。

于 2012-12-13T15:46:01.270 に答える