0

solrの複数のフィールドに対して複数の値を検索する方法は?

私のシナリオ:

現在schema.xmlで、私はとを使用<solrQueryParser defaultOperator="AND"/>しています

<copyField source="COL1" dest="defaultsearch"/>
<copyField source="COL2" dest="defaultsearch"/>

<fieldType name="text_search" class="solr.TextField" positionIncrementGap="100">
 <analyzer>
   <tokenizer class="solr.WhitespaceTokenizerFactory" />
   <filter class="solr.LowerCaseFilterFactory" />      
 </analyzer>
</fieldType>

<defaultSearchField>defaultsearch</defaultSearchField>

例:

私の検索クエリはq=GoodBoyのようなものです。

GoodBoyの両方がCOL1またはCOL2のいずれかに存在する必要があるようなレコードをフェッチする必要があります。

しかし、私にとっては、COL1に存在するGoodとCOL2に存在するBoy、またはCOL2に存在するGoodとCOL1に存在するBoyなどの追加の結果で期待どおりの結果が得られます。

GoodBoyの両方でCOL1またはCOL2のいずれかに表示される結果を見つける方法を教えてください。

4

1 に答える 1

0

COL1 と COL2 を完全に一致させる必要がある場合は、次のコマンドを実行できます (COL1 と COL2 が文字列であると仮定します)。

q=(COL1:"Good Boy" OR COL2:"Good Boy")

完全一致を必要とせず、フレーズに「Good」と「Boy」の両方を任意の順序で含める必要がある場合は、次の方法を試してください (未テスト) :-

q=(COL1:*Good Boy* OR COL2: *Good Boy*) 
于 2012-12-18T04:18:45.910 に答える