我正在使用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是所使用的分析器。 (感谢Mark

我假设“特殊字符”是用于组合查询或某种通配符处理的,以提供更好的术语。

有没有更好的功能可以在查询字符串中解释这些字符?

最佳答案

您需要查看使用了什么分析器,因为分析器确定使用的令牌生成器(而令牌生成器确定哪些字符是特殊的)。

关于c++ - 在QueryParser中解析非字母数字字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16957103/

10-11 03:36
查看更多