我正在尝试 modeshape 4,想要二进制内容搜索,我能够搜索包含二进制内容的节点以外的节点。在搜索二进制内容方面需要帮助。有没有例子?
创建节点的代码
static void addFile(byte[] filebytes, String filename) throws Exception{
Session session=openSession();
Node root = session.getRootNode();
if(!root.hasNode("files")){
Node n = root.addNode("files");
}
Node files=root.getNode("files");
Node newFileNode=files.addNode(String.valueOf(helper.rnd.nextInt()));
newFileNode.setProperty("fileName", filename);
newFileNode.setProperty("owner", "test");
newFileNode.setProperty("binaryContent", session.getValueFactory().createBinary(new ByteArrayInputStream(filebytes)));
session.save();
closeSession(session);
}
搜索代码
static void search()throws Exception{
javax.jcr.query.QueryManager queryManager = openSession().getWorkspace().getQueryManager();
javax.jcr.query.Query query = queryManager.createQuery("select * from [nt:base] as s where contains(s.binaryContent,'Finan') ",Query.JCR_SQL2);
javax.jcr.query.QueryResult result = query.execute();
javax.jcr.NodeIterator nodeIter = result.getNodes();
while ( nodeIter.hasNext() ) {
javax.jcr.Node node = nodeIter.nextNode();
System.out.println(node.getProperty("fileName")+" "+node.getProperty("owner"));
}
}
模态配置
{
"name" : "Persisted-Repository",
"workspaces" : {
"predefined" : ["otherWorkspace"],
"default" : "default",
"allowCreation" : true
},
"security" : {
"anonymous" : {
"roles" : ["readonly","readwrite","admin"],
"useOnFailedLogin" : false
}
},
"storage" : {
"cacheConfiguration" : "infinispan-configuration-async-eviction.xml",
"cacheName" : "persisted_repository",
"binaryStorage" : {
"type" : "database",
"driverClass" : "oracle.jdbc.driver.OracleDriver",
"url" : "jdbc:oracle:thin:@xxx.xx.xx.xx:1521:sid",
"username" : "user",
"password" : "password"
}
},
"indexProviders": {
"lucene": {
"classname": "lucene",
"directory": "target/indexes"
}
},
"indexes": {
"textFromFiles": {
"kind": "text",
"provider": "lucene",
"nodeType": "nt:resource",
"columns": "jcr:data(BINARY)"
}
},
"textExtraction": {
"extractors" : {
"tikaExtractor":{
"name" : "Tika content-based extractor",
"classname" : "tika"
}
}
} }
节点结构
+---> -1731357696 /files/-1731357696
owner test
filename attachment-a.docx
binaryContent binary (14.39KB, SHA1=3941f73eab403accc1779af293afadd0c03e0c15)