2

我正在尝试 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)   
4

0 回答 0