2011-01-12 4 views
5

最近、私はSolrを使用して格納および索引を作成する方法を研究しています。私はfacet.prefix検索をしたい。空白トークナイザでは、 "あなたはどこですか"が3つの単語に分割され、索引付けされます。 facet.prefix = "where are"を検索すると、結果は返されません。NGramTokenizerFactoryまたはNGramFilterFactoryの使用方法は?

私はgoogleとNGramFilterFactoryが私を助けることがわかりました。しかし、このフィルタファクトリを適用すると、結果は "w、h、e、...、wh、.."であり、トークンではなく文字で区切られていることがわかりました。

パラメータmaxGramSizeとminGramSizeを1と3に設定します。NGramFilterFactoryは正しく動作しますか?他のパラメータを追加する必要がありますか?私を助けることができる他のフィルター工場はありますか?

ありがとうございます!

+0

はい、これはngramの動作とまったく同じです。どのコンテキストで、あなたはfacet.prefixを使用していますか? –

+0

あなたにはあまり答えはありませんが、明確化されています。 NGramは個々の文字で動作します。それは "cat"という単語をとり、 "c"、 "a"、 "t"、 "ca"、 "at"、 "cat"のようなトークンにスライスすることができます。それは、同じレベルで動作しますが、文字レベルではなく単語レベルで動作する、シングルトークナイザと呼ばれるものが必要なように見えます。 – rfeak

+0

こんにちはMauricio、私はautocompletionのためにfacet.prefixを使用したいと思います。デフォルトの方法では、3つの単語が別々に索引付けされます。 facet.prefix検索を行うとき、もちろん "w"を検索すると "where"が返されますが、 "where"を検索すると何も返されません。だから私はインデックスのためのトークンを追加したい。 – user572485

答えて

1

ファセットは、文字列などのトークン化されていないフィールドにのみ適用する必要があります。 "what are"の結果が表示されたければ、そのフィールド(またはcopyFieldディレクティブ)に対してトークナイザは全く使われません。私はautocompletionのためにfacet.prefixを使いたいと思う。あなたはこれを行うことができますlook here

ngramtokenizer check this outの場合。

関連する問題