2014-10-22 66 views
1

我正在写一个web脚本,其中我有一个自定义内容模型。Alfresco Lucene搜索语法

我想列出所有文档,它们都有一个特定属性作为它的一个属性。

首先我做

search.luceneSearch("PATH:\"/app:company_home//*\" AND @cm:name:myDocument") 

这回我值1。但这个查询实际上返回我的文档,其厘米:name属性为myDocument中。

如果我想搜索具有cm:name属性作为属性的文档,该怎么办。

这样以后,我可以用mycontentmodel:myproperty更改cm:name,并查找属于我的内容类型的元素。

+0

可能重复字段](http://stackoverflow.com/questions/3710089/find-all-lucene-documents-having-a-certain-field) – Miki 2014-10-22 11:15:13

回答

2

如果我理解正确,您希望找到所有具有属性mycontentmodel的文档:myproperty,但您对该属性的实际值不感兴趣。

如果是这样,请了解mycontentmodel:myproperty所属的类型或方面。

如果它属于类型mycontentmodel:MyType的查询可以是:

PATH:"/app:company_home//*" AND TYPE:"mycontentmodel:mytype" 

,如果它属于方面mycontentmodel:myaspect

PATH:"/app:company_home//*" AND ASPECT:"mycontentmodel:myaspect" 
的[查找具有一定所有的Lucene文件
+0

感谢您的这一点。我还有一个问题,'cm'是一个命名空间的权利?该名称空间定义了“内容”,“类别”,“模型”类型的内容。所以当我做cm:name时,这里的名字到底是什么?名称是类型/方面或属性。如果它是一个属性,它属于什么类型/方面? – Kraken 2014-10-22 10:07:28

+0

@Kraken name是一个属性,它属于cm命名空间,其中cm的内容模型*较短,或者如果您想知道完整的命名空间名称 - >'http://www.alfresco.org/model/content/1.0 ' – Miki 2014-10-22 11:10:21

+0

“cm”在您的Alfresco安装中的tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model/contentModel.xml中定义。 “cm:name”可以作为“cm:cmobject”类型的属性在该文件中找到。 “cm:cmobject”是“cm:文件夹”,“cm:content”以及其他核心类型的父类型。 – softwareloop 2014-10-23 07:48:06