私は正常に動作するC#アプリケーションで全文検索に皮肉を使用しています。[、]、;、~、'、\、/、<、>、、などの特殊文字を含むテキストを検索する必要があります。上記の特殊文字を使用して検索すると、「構文エラー、予期される: - & ( ) Phrase StringLiteral Term | ~ < and not or (parser state: S5)」というエラーが表示されます。
特殊文字を含む全文検索を行う方法はありますか?
これは、この呼び出し中にエラーが発生した私のコードです:_compiler.Parse(_compilerContext, source);
private void ConvertQuery()
{
// Define Grammer
SearchGrammar _grammar = new SearchGrammar();
LanguageCompiler _compiler = new LanguageCompiler(_grammar);
CompilerContext _compilerContext = new CompilerContext(_compiler);
_compilerContext.Options |= CompilerOptions.MatchBraces | CompilerOptions.CollectTokens;
if (_compiler.Grammar.FlagIsSet(LanguageFlags.SupportsInterpreter))
{
_compilerContext.Options |= CompilerOptions.AnalyzeCode;
}
// Parse each token to construct the SQL command.
foreach (SearchToken token in tokens)
{
if (!token.IsDefined) continue;
SourceFile source = new SourceFile(token.RawText, "Source", 8);
AstNode root = _compiler.Parse(_compilerContext, source);
string parseError = CheckParseErrors(_compilerContext);
if (parseError != string.Empty)
{
token.ParseErrorMessage = parseError;
token.IsParseError = true;
}
else
{
token.SQLText = SearchGrammar.ConvertQuery(root, SearchGrammar.TermType.Exact, token);
}
}
}