入力文字列にC++のような用語が含まれている場合、luceneが関連する検索結果を返すようにするにはどうすればよいですか? Luceneは++文字を無視しているようです。Lucene検索での特殊文字としての取り扱い
コードの詳細: この行を実行すると、空の検索クエリが表示されます。
queryField = multiFieldQueryParser.Parse(inpKeywords);
keywordsQuery.Add(queryField, BooleanClause.Occur.SHOULD);
そして、ここに私のカスタムアナライザです:私はQUERYFIELD = multiFieldQueryParser.Parse(QueryParser.Escapeを試してみました
indexSearcher.Search(searchQuery, collector);
:
public class CustomAnalyzer : Analyzer
{
private static readonly WhitespaceAnalyzer whitespaceAnalyzer = new WhitespaceAnalyzer();
public override TokenStream TokenStream(String fieldName, System.IO.TextReader reader)
{
TokenStream result = whitespaceAnalyzer.TokenStream(fieldName, reader);
result = new StandardTokenizer(reader);
result = new LowerCaseFilter(result);
result = new StopFilter(result, stop_words);
return result;
}
}
そして、私は、検索クエリをこのように実行しています(inpKeywords));しかし、それでも動作しません。ここで実行され、ゼロヒットを返すクエリです。 "+(())"
ありがとうございます。
....動作していません私の更新された質問に。 –