が、私は、ユーザー実行Lucene検索クエリが
検索テキストがそれに任意の特殊文字を持っていない場合、それは正常に動作しますが入力したテキストが含まれている文書の検索をやっている「が含ま」。
以下は、私のQueryParserの作成方法です。 :検索テキストがそれに特別な文字が含まれている場合
//analyzer is an StandardAnalyzer()
QueryParser parser = new QueryParser("Text", analyzer);
parser.SetAllowLeadingWildcard(true);
return parser.Parse(string.Format("*{0}*", searchText));
私は次のエラーを取得する:
検索テキストが「ベッド[」
Cannot parse '*bed [*': Encountered "<EOF>" at line 1, column 7.
どのように私は私の作ることができると言うと仮定します検索文字列に特殊文字が含まれていて、その特殊文字を無視したくない場合は、クエリパーサは失敗しません。
別のものは、照会しながら、それは特殊文字を無視し、QueryParser.Escapeをやった後で私が意味する、それはまだ「ベッド[」またはQueryParserを検索します。 .Escapeは "ベッド"だけを検索するようにします – Malcolm
私はあなたがここで何をしているのかは完全にはわかりませんが、インデックス/クエリに標準アナライザを使用していると思われます。 se、then:これらの文字はアナライザによって静かに無視されます(むしろスキップされます)。 –
はい私はStandardAnalyserを使用しています。ホワットはテストしましたが、無視していることがわかりましたので、特別な文字で動作させることができ、無視しません。 – Malcolm