2016-09-29 3 views
2

たとえば、" key_phrase "というフィールドを持つ文書を含むsolrコレクションがあります。`solr`で検索された単語のみを含む文書を見つける方法

検索クエリですべての検索語を含むすべてのドキュメントを見つけるのは簡単です。しかし

(すなわちedismaxmm = 100%を使用して)、私はのために求めていますと、その「key_phraseは」のみ検索単語と他には何が含まれているドキュメントを返す方法です。この "key_phrase"もmulti_valuedフィールドです。

例えば: 検索クエリ:「子供のサッカーを」:「子供のサッカーギア」 クエリは「key_phrase」フィールドが含まれている次のドキュメントを返します。 それはまた、そのうちの一つは、検索クエリにない言葉が含まれていないため、「他の単語を」「子供たちはをGEAR」とのような2つの「key_phrase」の値を持つドキュメントを返します。

この文書は、検索クエリに存在しない「少年」を含んでいるので一方、それは少年ため子供のサッカーギア」を持つ文書を返しません。

+0

実際にあなたの質問は何ですか? –

+0

これまでに試したことを知っておくと役に立ちます。適切に設定されたフィールドタイプのAND検索のように見えるかもしれません。 – TMBT

答えて

0

ShingleFilterFactoryを使用してフィールドのインデックスを作成できます。

フィルタする"To be, or what?"

トークナイザ:あなたが入力を持っている場合は

のように

<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/> 

あなたはここにShingleFilterFactory

<analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.ShingleFilterFactory"/> 
</analyzer> 

を参照することができ"To"(1), "be"(2), "or"(3), "what"(4)

アウト:"To"(1), "To be"(1), "be"(2), "be or"(2), "or"(3), "or what"(3), "what"(4)

関連する問題