1

我正在使用 Lucene++ 3.0.3 处理前队友的代码。

有一条评论声称 QueryParser 无法处理“特殊字符”,处理这种情况的一种方法是将“特殊字符”替换为空格:

if (((*pos) >= L'A' && (*pos) <= L'Z') ||
    ((*pos) >= L'a' && (*pos) <= L'z') ||
    ... ||
    (*pos == L'-'))
{
    // do nothing, these are OK
} else {
    // remaining characters are []{}*
    (*pos) = L' ';
}

StandardAnalyzer是正在使用的分析器。(谢谢马克

我假设“特殊字符”用于组合查询或某种通配符处理,因为需要更好的术语。

是否有更好的函数可以解释查询字符串中的这些字符?

4

1 回答 1

0

您需要查看使用的 Analyzer,因为 Analyzer 确定使用的 Tokenizer(并且 Tokenizer 确定哪些字符是特殊的)。

于 2013-06-06T10:49:05.727 回答