Soo,这实际上很容易......需要做的是在您的文档上定义一个“d:content”类型的属性;我通过一个方面做到这一点......
模型.xml:
<aspects>
<aspect name="mm:my_aspect">
...
<property name="mm:myTextContentProperty">
<type>d:content</type>
</property>
</properties>
</aspect>
</aspects>
然后,当我在存储库中同时拥有 PDF 及其文本表示时,我通过添加方面并填充属性来链接这两者...
getNodeService().addAspect(pdfNodeRef, myAspect, null);
getNodeService().setProperty(pdfNodeRef, MyModel.MY_TEXT_CONTENT_PROPERTY, new ContentData("store://....bin", "text/plain", size, "UTF-8"));
现在可以通过以下两个查询找到 PDF,即使它不包含任何文本数据...
"@\\{http\\://mymodel.ns/content/1.0\\}myTextContentProperty:\"" + string + "\""
"TEXT:\"" + string + "\""
此处也暗示了后者,我猜这就是 Alfresco Web Client 中的常规搜索的工作方式,因为现在可以使用常规搜索输入访问 PDF。
但是有一个问题:搜索会吐出 PDF 文档以及我使用该属性链接的文档。所以现在我需要从搜索结果中隐藏后者......
(当使用第一个查询进行搜索时,正如预期的那样,只找到了 PDF;但这种方法对我来说用处不大。)
希望它可以为其他 Alfresco 新手节省一些时间。:)