2016-09-15 2 views
1

여기 Mark Logic 데이터베이스에 연결하고 문자열 Keyword를 사용하여 문서를 검색하는 Java 프로그램을 만듭니다. 아래는 생성 된 프로그램입니다.Marklogic에서 Java API를 사용한 검색 생성

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 

답변

4

이와 같은 경우 먼저 검색에 사용중인 사용자와 함께 해당 문서를 읽을 수 있어야합니다. 일반적으로 문서에 대한 cURL로 위도를 확인합니다. 예를 들어

문서를 가져올 수 있으면 검색이 실패 할 수도 있습니다. 언어 설정 때문일 수도 있습니다.

그래서, 짧은 제안은 많은 이동 가능한 부품 테스트 직접 ML에 대해 사용자와 (쿼리 콘솔 및/또는 REST 등)

+2

은 또한 검색은 대문자를 가지고 있습니다으로 -remove입니다 즉, 기본적으로 대소 문자를 구분하여 실행합니다 ([cts : word-query 사용법 참고] (http://docs.marklogic.com/cts:word-query)를 참조하십시오. 대소 문자가 일치하는 텍스트가 있는지 확인하십시오 소문자 쿼리를 사용하십시오 –

+0

David 님 감사합니다. 아래에 언급 된대로 프로그램을 수정했으며 결과를 지금 표시하고 있습니다 .. DatabaseClient client = DatabaseClientFactory.newClient ("localhost", 8004, "admin", "admin" , Authentication.DIGEST); \t \t QueryManager queryMgr = client.newQueryManager(); \t \t StringQueryDefinition query = queryMgr.newStringDefinition(); \t \t SearchHandle resultsHandle = new SearchHandle(); \t \t query.setCriteria ("Venkatesh"); \t \t // 검색을 실행하십시오. \t \t \t queryMgr.search (query, resultsHandle); \t \t // 결과 서식 지정 \t \t \t TutorialUtil.displayResultURIs (resultsHandle); \t \t \t client.release(); \t} } – V3nky

+0

또한 Java API를 사용하여 GUI를 작성하는 경우 문서 이름을 사용하여 문서를 검색하는 방법에 대한 질문이 있습니다. 제발 조언. – V3nky

관련 문제