我必须在lucene中的Span查询中解析布尔查询(AND)。 例如:财务NEAR(5)(收入和税收)是我正在寻找的。我应该如何在lucene中解析这个问题。我正在使用solr4.6软件包和补丁Lucene-5205。
对于布尔操作数OR,我能够通过更改AbstractSpanQueryParser中的函数_parsePureSpanClause来实现它。添加了在spanQuery中使布尔查询有效的条件: -
else if (t instanceof SQPBooleanOpToken )
{i++;} //go to next token
上述代码确保在spanNear中不将OR作为术语。解析以下查询: - [fileDataEnglish:profit(fileDataEnglish:maximum OR fileDataEnglish:income)] ~3)转换为: -
spanNear([fileDataEnglish:profit,spanOr([fileDataEnglish:maximum,fileDataEnglish:income])],3.3,true)
有人可以告诉我如何为AND做同样的事情?我所知道的是,lucene将收入和利润等收入转换为+收入+利润。 SPAN中AND的对应语法应该是什么? spanNear(+收入+利润)??另外,应该为此改变哪些类?
答案 0 :(得分:0)
AND目前仅在较高级别提供。目前,您需要使用“收入”和“利润”的接近度
所以
[财务[所得税] ~5] ~10
将在“税收”的5个字内的“收入”命中的10个字内找到“财务”。
或者您可以这样做: [财务所得税] ~10
在10个字之内找到“财务”,“收入”和“税收”。