4

Sphinx構成ファイルは、1つのインデックスに対して複数のソースをサポートすることを示唆していますが、実際に指定するにはどうすればよいですか?

構成ファイルのスニペットは次のとおりです。

# document source(s) to index
# multi-value, mandatory
# document IDs must be globally unique across all sources
source                  = src1

次の形式で設定してみました。

source = src1, src2
source = [src1, src2]

また、ソース変数を2回使用してみました。例:

source = src1
source = src2

設定ファイルで使用する構文がわからないので、私はただの劣等生だと思います。何か案は?

2番目のコードスニペットを使用すると、次のエラーが発生します。

ERROR: index 'iwa': fulltext fields count mismatch (me=iwa_publications, in=iwa_events, myfields=3, infields=8).

2つのソースはiwa_eventsとiwa_publicationsです。どちらにも一意のID列があり、両方のソースは個別にインデックスを作成すると機能します。

4

3 に答える 3

1

はい。ソーススキーマは同じである必要があります。ただし、必要なフィールドの数は同じです。必要に応じて、同じフィールドを2回使用することもできます。すべてのクエリで、次のようにフィールドに同じ名前を付けるだけです。sql_query = select id, catname as one, country as two, currency as three, language as four from catalog

于 2011-12-27T10:41:50.760 に答える
1

一度に複数のインデックスを検索する場合は、構成ファイルではなく、PHP コードで指定する必要があります。

Queryメソッドでインデックスを区切るだけです(ドキュメントを参照):

$cl->Query ( "test query", "index1 index2" );

ドキュメントによると、できます。2 番目のコード スニペットは、複数のソースを一覧表示するための正しい形式です。質問を編集して、実際の問題を教えてください。

于 2010-01-08T11:10:05.387 に答える
1

問題が見つかりました: 複数の情報源があるという点を誤解していました。ドキュメントの次の行によると、複数のソースを 1 つのインデックスで実際に使用できるように見えますが、スキーマに関して同一である場合に限ります。

「同じインデックス内に格納するには、ソース スキーマが同じである必要があります。」

ヤンさん、助けてくれてどうもありがとう。:D

于 2010-01-08T11:35:00.580 に答える