如何在lucene中的Span查询中解析布尔查询

时间:2014-12-18 17:19:16

标签: solr lucene

我必须在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(+收入+利润)??另外,应该为此改变哪些类?

1 个答案:

答案 0 :(得分:0)

AND目前仅在较高级别提供。目前,您需要使用“收入”和“利润”的接近度

所以

[财务[所得税] ~5] ~10

将在“税收”的5个字内的“收入”命中的10个字内找到“财务”。

或者您可以这样做: [财务所得税] ~10

在10个字之内找到“财务”,“收入”和“税收”。