Skip to content

manticoresoftware/manticoresearch-typescript

Repository files navigation

Manticore TypeScript client

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

Compatibility Table

manticoresearch-typescript Manticore Search Node Compatibility
manticoresearch-ts-dev dev (latest development version) Node 18 or newer ✅ Fully Compatible
8.0.0 or newer 9.2.14 or newer Node 18 or newer ✅ Fully Compatible
6.0.0 to 8.0.0 9.2.14 or newer Node 18 or newer ⚠️ Partially Compatible
6.0.0 to 8.0.0 7.0.0 to 9.2.14 Node 18 or newer ✅ Fully Compatible
6.0.0 or newer 4.2.1 to 7.0.0 Node 18 or newer ⚠️ Partially Compatible
3.3.1 to 6.0.0 6.2.0 or newer Node 18 or newer ✅ Fully Compatible
3.3.1 to 6.0.0 4.2.1 to 6.2.0 Node 18 or newer ⚠️ Partially Compatible
1.0.x to 3.3.1 4.2.1 to 6.2.0 Node 18 or newer ✅ Fully Compatible

Installation

npm install manticoresearch-ts 

Getting Started

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

import * as Manticoresearch from "manticoresearch-ts";
(async () => {
  try {
    const serverConfig = new Manticoresearch.ServerConfiguration("http://localhost:9308", {})
    const config = Manticoresearch.createConfiguration({
      baseServer: serverConfig,
    });
    indexApi = new Manticoresearch.IndexApi(config);
    searchApi = new Manticoresearch.SearchApi(config);
  
    # 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)
  } catch (error) {
    console.error("Error response:", JSON.stringify(error));
  }
})();

Documentation

Full documentation on the API Endpoints and Models used is available in docs folder as listed below.

Manticore Search server documentation: https://manual.manticoresearch.com.

Documentation for API Endpoints

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

Class Method HTTP request Description
Manticoresearch.IndexApi bulk POST /bulk Bulk table operations
Manticoresearch.IndexApi delete POST /delete Delete a document in a table
Manticoresearch.IndexApi insert POST /insert Create a new document in a table
Manticoresearch.IndexApi partialReplace POST /{table}/_update/{id} Partially replaces a document in a table
Manticoresearch.IndexApi replace POST /replace Replace new document in a table
Manticoresearch.IndexApi update POST /update Update a document in a table
Manticoresearch.SearchApi autocomplete POST /autocomplete Performs an autocomplete search on a table
Manticoresearch.SearchApi percolate POST /pq/{table}/search Perform reverse search on a percolate table
Manticoresearch.SearchApi search POST /search Performs a search on a table
Manticoresearch.UtilsApi sql POST /sql Perform SQL requests

Documentation for Authorization

All endpoints do not require authorization.