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/nrtsearch_client createIndex --indexName  testIdx

Configure the index

# ./build/install/nrtsearch/bin/nrtsearch_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/nrtsearch_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},
                    { "name": "license_no",  "type": "INT", "multiValued": true, "storeDocValues": true}
            ]
  }

Start Index

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

Add documents to your NRTSearch index

# ./build/install/nrtsearch/bin/nrtsearch_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/nrtsearch_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);