如何提取lucene查询的可重复部分?

时间:2012-02-26 09:09:33

标签: lucene lucene.net

我有4个字段,docContent,visibility,docOwner和docType。我希望获得所有 docType:ProfileDocument ,但可见性:1 除外。但是每个文档的所有者可以说他的文档具有 visibility:1 可以从搜索结果中返回。下面的查询将搜索 asd ,返回与该术语匹配的所有文档,除 docOwner:390 外,其可见性不为1。查询有效,但 docType:ProfileDocument 重复两次。如何重构查询,以便只显示一次 docType:ProfileDocument

docContent:asd
AND(
    (NOT visibility:1 AND docType:ProfileDocument)
    OR ( docOwner:390 AND visibility:1 AND docType:ProfileDocument)
)

我试过了但是我失败了:

docContent:asd
AND(
    (((NOT visibility:1)
    OR ( docOwner:390 AND visibility:1))
    AND docType:ProfileDocument)
)

1 个答案:

答案 0 :(得分:1)

AND NOT运算符不能仅与一个术语一起使用。例如,以下搜索将不返回任何结果:

AND NOT“jakarta apache”

参考:http://drupal.org/node/375446