2016-08-12 30 views
0

solr内のすべてのフィールドを特定の値で検索したいとします。 title:sixを検索すると結果が表示されますが、*:sixを検索すると表示されません。私は、インデックス付けされているすべてのフィールドに関する情報を収集しallフィールドを持っているので、私はall:sixを検索すると、私は同様に私の結果を得るか、しかし私は、特に私が「のschema.xmlで*:sixすべてのsolrフィールドの値を検索する

を検索します<copyField source="*" dest="all" />に気付いたが、どちらかといえばうまくいっているとは思わない(そのまま残しておけば、何も変わっていない)。

私は後に何をするのか?

+0

[Solr - すべてのフィールドのベストプラクティスを問い合せる]の可能な複製(http://stackoverflow.com/questions/12833592/solr-query-over-all-fields-best-practice) – Mun

+0

@Mun - 教えてくださいその質問が私の質問にどう答えるか? – eithed

+0

あなたの質問をもう一度読んで、「すべて」のフィールドが既にあることに気付きました。私はあなたが探している特定の構文を使用することはできませんが、それはあなたが入力できるようにする場合は、 "*:6"から "すべて:6"後者をSolrに送る。 – Mun

答えて

1

検索*:6は法的な構文ではなく、グローバル検索としては使用できません。たぶん代わりに実際のテキストとして解析し、代わりにそのキーワードの既定のフィールドを検索します。デフォルトフィールド(dfパラメータで定義され、おそらくすべて)が標準のトークン化を行う場合、コロンで分割され、そのデフォルトフィールドで '*'と 'six'が検索されます。

これは、Solr構文の誤解として働いている可能性があり、いつでも壊れている可能性があります。その構成がまだ実行中の場合、デバッグフラグを有効にすると、クエリの解析方法と検索対象のフィールドが正確に表示されます。それはあなたが必要とするすべての証拠です。

正しい方法は、あなたが持っているコピーフィールドです。すべてをデフォルトの検索フィールドとして宣言してください。ソルと一緒に出荷されている例が、それを実行する方法です。

+0

'' すべて 'を' solrconfig.xml'のデフォルトに追加すると、 。私はあなたが正しいと思う - 私はdebugQueryで '*'を見たことはないが、それは破棄されたかもしれない。 – eithed

関連する問題