Java 为什么;“多foo”;解析后的值为";(2)foo";

Java 为什么;“多foo”;解析后的值为";(2)foo";,java,lucene,Java,Lucene,很抱歉我的英语很差,希望你能明白我说的话 在Lucene3JUnit测试代码中:org.apache.lucene.queryParser.TestMultiAnalyzer.TestMultiAnalyzer() 我不明白为什么“multi-foo”解析值是“(multi-multi2)foo” 我在google.com和baidu.com上搜索过,没有结果。MultiAnalyzer类(已定义)有如下注释: /** * Expands "multi" to "multi" and "mul

很抱歉我的英语很差,希望你能明白我说的话

在Lucene3JUnit测试代码中:org.apache.lucene.queryParser.TestMultiAnalyzer.TestMultiAnalyzer()

我不明白为什么“multi-foo”解析值是“(multi-multi2)foo”


我在google.com和baidu.com上搜索过,没有结果。

MultiAnalyzer类(已定义)有如下注释:

/**
 * Expands "multi" to "multi" and "multi2", both at the same position,
 * and expands "triplemulti" to "triplemulti", "multi3", and "multi2".  
 */

这可能解释了这一点…

看起来您从中获取了测试代码。如果查看代码,您可以看到Javadoc和类的定义
MultiAnalyzer

/**
 * Expands "multi" to "multi" and "multi2", both at the same position,
 * and expands "triplemulti" to "triplemulti", "multi3", and "multi2".  
 */
private class MultiAnalyzer extends Analyzer {
    // <snipped>
}
/**
*将“multi”扩展为“multi”和“multi2”,两者位于同一位置,
*并将“triplemulti”扩展为“triplemulti”、“multi3”和“multi2”。
*/
私有类多重分析器扩展分析器{
// 
}

因此,Javadoc解释了发生了什么:“multi”将变成“multi-multi2”。如果您想知道发生这种情况的确切原因,请调试代码并阅读所有相关的Javadoc。如果您再次陷入困境,请在此提问。

我们需要知道
qp.parse
方法的作用。那是哪一类的?你有Javadoc吗?你正在为此编写测试用例,你不知道为什么它会这样解析,那么我们怎么能不看代码就知道呢。这不是我的测试代码,是luence的测试代码
/**
 * Expands "multi" to "multi" and "multi2", both at the same position,
 * and expands "triplemulti" to "triplemulti", "multi3", and "multi2".  
 */
private class MultiAnalyzer extends Analyzer {
    // <snipped>
}