package

github.com/Athsus/manticoresearch-crystal

1.0.2 / published Sep 9, 2024 / repository

Manticore Crystal Client

Client for Manticore Search.

Installation & Usage

Install with Shards

TODO: installation not tested

To add the manticoresearch package to your Crystal project, add the following to your shard.yml:

dependencies:
  manticoresearch:
    github: Athsus/manticoresearch-crystal
    version: ~> 1.0.0

Then run shards install to install dependencies

Example Usage

require "manticoresearch"

# Define the Manticore Search configuration
config = Manticoresearch::Configuration.new("http://127.0.0.1:9308")

# Initialize the API client
api_client = Manticoresearch::ApiClient.new(config)

# Create an instance of the Index API
index_api = Manticoresearch::IndexApi.new(api_client)

# Perform a bulk insert
body = <<-NDJSON
{"insert": {"index": "test", "id": 1, "doc": {"title": "Title 1"}}}
{"insert": {"index": "test", "id": 2, "doc": {"title": "Title 2"}}}
NDJSON

begin
  # Bulk index operation
  response = index_api.bulk(body)
  puts response
rescue ex : Exception
  puts "Error: #{ex.message}"
end

# Search example
search_api = Manticoresearch::SearchApi.new(api_client)
search_request = {
  "index" => "test",
  "query" => { "match" => { "title" => "Title 1" } }
}

begin
  # Perform a search
  search_response = search_api.search(search_request)
  puts search_response
rescue ex : Exception
  puts "Error: #{ex.message}"
end

API Documentation

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

API Endpoints

ClassMethodHTTP requestDescription
IndexApibulkPOST /bulkBulk index operations
IndexApideletePOST /deleteDelete a document in an index
IndexApiinsertPOST /insertCreate a new document in an index
IndexApireplacePOST /replaceReplace a document in an index
IndexApiupdatePOST /updateUpdate a document in an index
SearchApipercolatePOST /pq/{index}/searchPerform reverse search on a percolate index
SearchApisearchPOST /searchPerforms a search on an index
UtilsApisqlPOST /sqlPerform SQL queries

For full API reference, please refer to the Manticore Search Documentation.

Author

API