2012-01-05 16 views
0

私のアプリケーションで部分検索を有効にしようとしています。私がしたいのは、あるフレームワークでフレームワークが検索され、そのインデックスカラムがアイテムの1つとして「再生フレームワーク」を持つ場合、ヒットとして検出されるはずです。ここでPlayframework + Lucene:部分単語を検索するには?

は、私が試したものです:

play.modules.search.Query Q = Search.search( "インデックス:*" + JavaExtensions.noAccents().toLowerCase(による)+ "*"、場所。クラス);

エラー: 'index:* framework *:' * 'または'? 'を解析できません。 WildcardQueryの最初の文字として許可されていません

アイデア?

+1

「*」を使用して決して検索を開始しないでください。部分(NGramFilterFactoryをおそらく使用します)に一致するフィルタを定義する必要があります。関連する質問については、http://stackoverflow.com/questions/4824954/solr-partial-and-full-string-matchを参照してください.2番目の回答(Mauricio Scheffer)が動作するはずです。インデックスの再作成を忘れないでください! –

答えて

0

fuzzy searchをする必要があるようです。あなたの場合、次のコードは必要な処理を行う必要があります:

play.modules.search.Query q = 
    Search.search("yourFieldInLocationClass:" + queryString + "~", Location.class);