我可以进行全文搜索,包括特殊字符吗?

时间:2011-11-10 13:03:56

标签: c# full-text-search irony

我在c#应用程序中使用讽刺进行全文搜索,效果很好。现在我的需要是我想搜索包含一些特殊字符的文本,例如[,],;,〜,',\,/,<,>,等。当我用上面的特殊字符进行搜索时,它显示错误“语法错误,预期: - &()短语StringLiteral Term |〜<而不是或(解析器状态: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);
        }
    }
}

0 个答案:

没有答案