Home

Awesome

Manticore Javascript client

Сlient for Manticore Search.

❗ WARNING: this is a development version of the client. The latest release's readme is https://github.com/manticoresoftware/manticoresearch-javascript/tree/4.0.0

Requirements

Minimum Manticore Search version is 2.5.1 with HTTP protocol enabled.

Manticore Searchmanticoresearch-javascriptNode
devmanticoresearch-dev>= 10.0
>= 6.2.0>= 3.3.1>= 10.0
>= 4.2.1>= 3.0.x>= 10.0
>= 4.0.2>= 2.0.3>= 10.0
>= 2.5.1>= 2.0.2>= 8.0

Installation

For Node.js

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing package.json (and this README). Let's call this JAVASCRIPT_CLIENT_DIR. Then run:

npm install

Next, link it globally in npm with the following, also from JAVASCRIPT_CLIENT_DIR:

npm link

To use the link you just defined in your project, switch to the directory you want to use your manticoresearch from, and run:

npm link /path/to/<JAVASCRIPT_CLIENT_DIR>

Finally, you need to build the module:

npm run build

For browser

The library also works in the browser environment via npm and browserify. After following the above steps with Node.js and installing browserify with npm install -g browserify, perform the following (assuming main.js is your entry file):

browserify main.js > bundle.js

Then include bundle.js in the HTML pages.

Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error: Cannot resolve module", most certainly you should disable AMD loader. Add/merge the following section to your webpack config:

module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}

Getting Started

Please follow the installation instruction and execute the following JS code:

var Manticoresearch = require('manticoresearch');


# Create instances of API classes
var client= new Manticoresearch.ApiClient();
client.basePath="http://127.0.0.1:9308";
indexApi = new Manticoresearch.IndexApi(client);
searchApi = new Manticoresearch.SearchApi(client);

# Perform insert and search operations
await indexApi.insert({"index": "products", "doc" : {"title" : "Crossbody Bag with Tassel", "price" : 19.85}});
await indexApi.insert({"index": "products", "doc" : {"title" : "microfiber sheet set", "price" : 19.99}});

var search_query = new Manticoresearch.SearchQuery()
search_query.query_string = "@title bag"
      
var search_request = new Manticoresearch.SearchRequest()
search_request.index = "products"
search_request.query = search_query
var query_highlight = new Manticoresearch.Highlight()
query_highlight.fields = {"title":{}}
search_request.highlight = query_highlight
  
var search_response = await searchApi.search(search_request)
console.log("The response of SearchApi->search:\n")    
console.log(search_response)

# Alternatively, you can pass all request arguments as JSON strings
search_response = await searchApi.search({"index": "products", "query": {"query_string": "@title bag"}, "highlight": {"fields": ["title"]}});
console.log("The response of SearchApi->search:\n")    
console.log(search_response)


Documentation for API Endpoints

All URIs are relative to http://127.0.0.1:9308

ClassMethodHTTP requestDescription
Manticoresearch.IndexApibulkPOST /bulkBulk index operations
Manticoresearch.IndexApicallDeletePOST /deleteDelete a document in an index
Manticoresearch.IndexApiinsertPOST /insertCreate a new document in an index
Manticoresearch.IndexApipartialReplacePOST /{index}/_update/{id}Partially replaces a document in an index
Manticoresearch.IndexApireplacePOST /replaceReplace new document in an index
Manticoresearch.IndexApiupdatePOST /updateUpdate a document in an index
Manticoresearch.SearchApipercolatePOST /pq/{index}/searchPerform reverse search on a percolate index
Manticoresearch.SearchApisearchPOST /searchPerforms a search on an index
Manticoresearch.UtilsApisqlPOST /sqlPerform SQL requests

Documentation for Models

Documentation for Authorization

Endpoints do not require authorization.