Get Started

Docker Compose Setup

For docker compose setup of this example, please refer to Docker Compose section of this doc

Launch you local NRTSearch server

Follow Introduction of this doc to launch the NRTSearch server

Create your NRTSearch index

Create Index

# ./build/install/nrtsearch/bin/lucene-client createIndex --indexName  testIdx

Configure the index

# ./build/install/nrtsearch/bin/lucene-client settings -f settings.json
# cat settings.json
  {         "indexName": "testIdx",
            "directory": "MMapDirectory",
            "nrtCachingDirectoryMaxSizeMB": 0.0,
            "indexMergeSchedulerAutoThrottle": false,
            "concurrentMergeSchedulerMaxMergeCount": 16,
            "concurrentMergeSchedulerMaxThreadCount": 8
  }

Register Fields

# ./build/install/nrtsearch/bin/lucene-client registerFields -f registerFields.json
# cat registerFields.json
  {         "indexName": "testIdx",
            "field":
            [
                    { "name": "doc_id", "type": "ATOM", "storeDocValues": true},
                    { "name": "vendor_name", "type": "TEXT" , "search": true, "store": true, "tokenize": true},
                    { "name": "license_no",  "type": "INT", "multiValued": true, "storeDocValues": true}
            ]
  }

Start Index

# ./build/install/nrtsearch/bin/lucene-client startIndex -f startIndex.json
# cat startIndex.json
  {
      "indexName" : "testIdx"
  }

Add documents to your NRTSearch index

# ./build/install/nrtsearch/bin/lucene-client addDocuments -i testIdx -f docs.csv -t csv
# cat docs.csv
  doc_id,vendor_name,license_no
  0,first vendor,100;200
  1,second vendor,111;222

Query your NRTSearch server

# ./build/install/nrtsearch/bin/lucene-client search -f search.json
# cat search.json
  {
      "indexName": "testIdx",
      "startHit": 0,
      "topHits": 100,
      "retrieveFields": ["doc_id", "license_no", "vendor_name"],
       "queryText": "vendor_name:first vendor"
  }

Java client Example

LuceneServerStubBuilder luceneServerStubBuilder = new LuceneServerStubBuilder("localhost", 8000);
LuceneServerGrpc.LuceneServerBlockingStub blockingStub = luceneServerStubBuilder.createBlockingStub();
SearchRequest request = SearchRequest.newBuilder()
  .setIndexName("testIdx")
  .setStartHit(0)
  .setTopHits(100)
  .addAllRetrieveFields(List.of("doc_id", "license_no", "vendor_name"))
  .setQueryText("vendor_name:first vendor")
  .build());
blockingStub.search(request);