我在和Alfresco一起使用Lucene。这是我的疑问:
( TYPE:"{com.company.customised.content.model}test" && (@\{com.company.customised.content.model\}testNo:111 && (@\{com.company.customised.content.model\}skill:or))
我必须搜索具有值"or"
属性技能的文档。上面的查询没有给出任何结果(我无法解析查询)。
如果我使用查询到testNo
(忽略skill
),我会得到正确的结果:
( TYPE:"{com.company.customised.content.model}test" && (@\{com.company.customised.content.model\}testNo:111))
你能帮帮我吗?
由于
答案 0 :(得分:2)
不幸的是,"or"
是Lucene中的保留关键字。因此,Lucene无法正确解释您的查询,因为Lucene认为您指的是OR
boolean operator。您可能想尝试用双引号括起or
:
( TYPE:"{com.company.customised.content.model}test" && (@\{com.company.customised.content.model\}testNo:111 && (@\{com.company.customised.content.model\}skill:"or"))
我不熟悉Alfresco,所以你可能无法做到这一点。
答案 1 :(得分:0)
是的,或者是lucene中的保留关键字,但是如果你试图按类型编号的属性进行查询,那么你可以直接给出你的值,如果类型为d:text或string,那么你必须给出你的价值双引号" " 。
(TYPE:" {com.company.customised.content.model} test"&&(@ {com.company.customised.content.model} testNo:111&&( @ {com.company.customised.content.model}技能:"或&#34))