0

私の弾性検索の設定は次のようなものです

         :analyzer => {
            :default => {
              :type => "custom",
              :tokenizer => "whitespace",
              :filter => ["lowercase", "standard", "my_ngram"]
            }
          }

my_gram はこのように指定されます

            :my_ngram => {
              :type => "nGram",
              :min_gram => 1,
              :max_gram => 20
            }

問題は、「cre」のようなものを検索すると、結果として「crib」と「crew」および「remember」が得られることです...これは、「re」と「cr」に一致するように表示されます...一致する場合は、単語内の「cre」と完全に一致するようにしたい。

私は何を間違っていますか?

4

1 に答える 1

1

これに対する答えが見つかりました...オプションで指定:default_operator => ANDするだけです。query_stringこのようなものです(私は怠け者なので、Tire gemを使用しています)

    Post.search do
      query { string your_query_string_here, :default_operator => "AND" }
    end
于 2012-11-29T23:27:54.593 に答える