使用Marklogic的JAVA API创建搜索

时间:2016-09-15 08:36:55

标签: java marklogic java-api

这里我创建了一个java程序,它连接到Marklogic数据库并使用字符串Keyword检索文档。以下是创建的程序。

import com.marklogic.client.DatabaseClient;
import com.marklogic.client.DatabaseClientFactory;
import com.marklogic.client.DatabaseClientFactory.Authentication;
import com.marklogic.client.document.BinaryDocumentManager;
import com.marklogic.client.document.JSONDocumentManager;
import com.marklogic.client.document.TextDocumentManager;
import com.marklogic.client.document.XMLDocumentManager;
import com.marklogic.client.io.Format;
import com.marklogic.client.io.StringHandle;
import com.marklogic.client.query.QueryManager;
import com.marklogic.client.query.StringQueryDefinition;

public class dcb_conn {
  public static void main(String args[]){
    DatabaseClient client = DatabaseClientFactory.newClient("localhost", 8004, "venkatesh", "F1mas", Authentication.DIGEST);
    BinaryDocumentManager binDocMgr = client.newBinaryDocumentManager();
    XMLDocumentManager XMLdocMgr = client.newXMLDocumentManager();
    JSONDocumentManager JSONDocMgr = client.newJSONDocumentManager();
    TextDocumentManager TextDocMgr = client.newTextDocumentManager();
    QueryManager queryMgr = client.newQueryManager();
    StringQueryDefinition query = queryMgr.newStringDefinition();
    StringHandle resultsHandle = new StringHandle().withFormat(Format.XML);
    query.setCriteria("Venkatesh");
    queryMgr.search(query, resultsHandle);
  }
}

我没有得到任何文档结果(例如ABC.xml)而是我得到了下面提到的结果。你能告诉我这里缺少什么吗?

10:24:36.139 [main] DEBUG c.m.client.DatabaseClientFactory - Creating new   database client for server at localhost:8004
10:24:36.155 [main] DEBUG c.m.client.impl.JerseyServices - Connecting to localhost at 8004 as venkatesh
10:24:36.319 [main] DEBUG c.m.client.impl.JerseyServices - Searching for Venkatesh

1 个答案:

答案 0 :(得分:4)

在这种情况下,首先要确保您能够与您用于搜索的用户一起阅读相关文档。我通常使用cURL对文档获取REST API进行这种健全性检查,例如

如果您能够获取文档,则搜索失败,这也可能是由于语言设置造成的。

所以,简短的建议是 - 删除尽可能多的移动部件,并与用户直接测试ML(查询控制台和/或REST等)