私は約4,000の場所を含む比較的小さなインデックスを持っています。とりわけ、私はそれを使って検索フォームにオートコンプリートフィールドを設定しています。Lucene.NETで部分単語検索を行う方法は?
私の指数は、私はなりたい
- のような値を含むLocationフィールドでドキュメントを含みます"ohi"と入力してこれらの結果を表示させることができますが、今すぐ完全な単語 "ohio"を入力するまでは何も表示されません。私はLucene.NET v2.3.2.1を使用していて、私のクエリを設定するために、次のように私のコードの関連部分がある
....
要するにBooleanQuery keywords = new BooleanQuery(); QueryParser parser = new QueryParser("location", new StandardAnalyzer()); parser.SetAllowLeadingWildcard(true); keywords.Add(parser.Parse("\"*" + location + "*\""), BooleanClause.Occur.SHOULD); luceneQuery.Add(keywords, BooleanClause.Occur.MUST);
、私はしたいのですが
SELECT * from Location where Name LIKE '%ohi%'
Luceneでこれを行うことはできますか?
それはトリックでした!あなたは私が必要とするものを持っていました。 /GBT:werd !!! – JamieGaines
この回答は、最終コードの外観を反映していません。私はこれをどこに置くべきか迷っていますか?どのようなタイプの "クエリ"ですか?最終的なサンプルは素晴らしいでしょう。 – irperez
少なくともJavaでは、 "Test *"というクエリはコンパイルされないので、 "Test *"というクエリはコンパイルされないので、空白を削除する必要があります。 – bcoughlan