2017-02-15 7 views
1

私はSolr 5.3.1を持っており、いくつかのフィールドを除くすべてのフィールドを検索する必要があります。 Q =クエリ& FL =フィールド1、フィールド2、フィールド3])SOLRクエリのいくつかのフィールドを無視する方法

私はいくつかの解決策を試してくださいしかし

1. How to exclude fields in a SOLR queryに動作しない[このsoluationが動作しない]

2. [以下のソリューションの作業が、時間がかかります]

query = field1:"+txtSearch+"OR field1:"+ txtSearch+" OR field1:"+txtSearch 

3.Iははそれだけで、この分野での検索を無視するが、私は関係なく、すべてのフィールドhttp://localhost:8983/solr/test?q=queryすべてのフィールドでクエリ検索を検索するときがインデックスデータ-config.xmlの中=「false」をインデックス化設定=」偽」OR真の私はこのすべてを探し

Retrieving specific fields in a Solr query?

How to exclude fields in a SOLR query

012リンク

https://www.drupal.org/node/1933996

答えて

0

indexed="false" のschema.xmlに言及する必要があります。あなたがのschema.xmlを修正したら

は、あなたがデータをインデックスし直す必要があります。

するとSolrのインデックスが作成されていない分野で検索しません(あなたにも、サーバーを再起動する必要があります)。 特定のフィールドで検索する場合は、そのフィールドのフィールド名と検索値を使用できます。

よう
`q=field1:"value1"` 
    q=field1:value1 OR field2:value2 
    q=field1:value1 AND field2:value2 
    q=value1&fq=field2:value2&fq=field3:value3 
2

使用copyField

ここでは、これを使用することができる方法です。

  • 格納されているすべてのフィールドが= "真" と
  • = "false" にインデックスを付けてください
  • また、multiValued = "true"、stored = "false"、およびindexed = "true"のcffieldという新しいフィールドを作成します

例スキーマ:検索したいから

  • <field name="field1" type="string" indexed="false" stored="true"/> 
    <field name="field2" type="string" indexed="false" stored="true"/> 
    <field name="field3" type="string" indexed="false" stored="true"/> 
    .... 
    <field name="cffield" type="string" indexed="true" stored="false" multiValued="true"/> 
    
    今、使用copyFieldタグの設定ソース値が

例スキーマをdestにソースフィールドからすべてのフィールドをコピーします:

<copyField source="field1" dest="cffield"/> 
<copyField source="field2" dest="cffield"/> 
.... 

query = cffield:txtSearch 

これは、あなたがDESTとしてcopyFieldのソースとcffieldを使用するすべてのフィールドから生じる与える

+1

**それは今働いています**感謝:) –

関連する問題