solrjसोल्रज से शुरुआत की


टिप्पणियों

यह खंड सोल्रज क्या है, का एक सिंहावलोकन प्रदान करता है, और एक डेवलपर इसका उपयोग क्यों करना चाहता है।

इसमें सॉलर्ज के भीतर किसी बड़े विषय का भी उल्लेख होना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि ठोस के लिए प्रलेखन नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।

SolrJ का उपयोग कर सोलर में दस्तावेज़ जोड़ें

यदि हमारे पास एक स्कीमा जैसा दिखता है:

<field name="id" type="string" indexed="true" stored="true" required="true" /> 

<field name="name" type="string" indexed="true" stored="true" />
 

Solr के लिए सामग्री जोड़ने के लिए solrj कोड इस तरह दिखेगा:

 package com.stackoverflow.solrj.example;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;

public class SolrJIndexing {

    private final static String SOLR_URL = "http://localhost:8983/solr/mycollection";

    public static void main(String[] args) {
        SolrClient solrClient = new HttpSolrClient.Builder(SOLR_URL).build();
        SolrInputDocument document1 = getDocument(1, "Document example 1");
        SolrInputDocument document2 = getDocument(2, "Document example 2");
        Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
        docs.add(document1);
        docs.add(document2);
        try {
            solrClient.add(docs);
            solrClient.commit();
        } catch (SolrServerException | IOException e) {
            e.printStackTrace();
        }
    }

    private static SolrInputDocument getDocument(int id, String name) {
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", id);
        document.addField("name", name);
        return document;
    }

}
 

स्थानीय STANDALONE क्लस्टर बनाम Kerberos के साथ दूरस्थ CLOUD के लिए Init SolrJ क्लाइंट

कॉन्फ़िगरेशन गुणों के आधार पर SolrJ क्लाइंट को इनिशियलाइज़ करने की आसान विधि;

private void initSolrClient() {
    if (conf.kerberos().isEnabled()) {
        System.setProperty("java.security.auth.login.config", conf.kerberos().confPath());
        HttpClientUtil.addConfigurer(new Krb5HttpClientConfigurer());
    }
    if (conf.solr().getMode() == SolrProperties.Mode.STANDALONE) {
        this.solr = new HttpSolrClient.Builder(conf.solr().url()).build();
    }
    if (conf.solr().getMode() == SolrProperties.Mode.CLOUD) {
        this.solr = new CloudSolrClient.Builder().withZkHost(conf.solr().zookeepers()).build();
    }
}
 

कर्बेरोस के साथ रिमॉट:

solr.conf.mode=CLOUD
solr.conf.zookepers=zookeeper-01.mydomain.com:2181,zookeeper-02.mydomain.com:2181,zookeeper-03.mydomain.com:2181/solr
kerberos.enabled=true
kerberos.confPath=/my/path/to/krb5/jaas-client.conf
 

स्थानीय विकास:

solr.conf.mode=STANDALONE
solr.conf.url=http://localhost:8983/solr
kerberos.enabled=false
 

स्थापना या सेटअप

SolrJ Solr 1.x के बाद से Solr वितरण के हिस्से के रूप में आता है। नवीनतम सोलर संस्करण को यहां डाउनलोड किया जा सकता है । Solr-6.3.0 से जो नवीनतम संस्करण उपलब्ध है, हमें निम्नलिखित पुस्तकालयों को प्राप्त करने और उन्हें अपने निर्माण पथ में जोड़ने की आवश्यकता है: / dist / apache-solr-solrj- .jar / dist / solrj-lib /।

एक बार जब हम कर लेते हैं, तो SolrJ हमारे Solr उदाहरण के साथ संवाद करने के लिए तैयार है। निम्नलिखित उदाहरण में हम देखेंगे कि SolrJ का उपयोग क्वेरी के लिए कैसे करें या Solr में सामग्री जोड़ें।

SolrJ के साथ क्वेरी सोलर

यदि आपने पिछले उदाहरण का उपयोग करके सोलर में सफलतापूर्वक दस्तावेज़ जोड़े हैं, तो अब आप उन्हें इस तरह से पुनः प्राप्त कर पाएंगे:

package com.stackoverflow.solrj.example;

import java.io.IOException;
import java.util.Iterator;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;

public class SolrJQueryExample {

    private final static String SOLR_URL = "http://localhost:8983/solr/mycollection";

    public static void main(String[] args) throws SolrServerException, IOException {

        SolrClient solrClient = new HttpSolrClient.Builder(SOLR_URL).build();
        SolrQuery solrQuery = new SolrQuery();
        solrQuery.setQuery("example");
        solrQuery.setStart(0);
        solrQuery.setRows(10);

        QueryResponse queryResponse = solrClient.query(solrQuery);
        SolrDocumentList solrDocs = queryResponse.getResults();
        Iterator<SolrDocument> iterator = solrDocs.iterator();
        while (iterator.hasNext()) {
            SolrDocument solrDocument = iterator.next();
            String docId = (String) solrDocument.getFieldValue("id");
            String docName = (String) solrDocument.getFieldValue("name");
            System.out.println("Document " + docId + ": " + docName);
        }

    }
}