Socket
Socket
Sign inDemoInstall

elasticitems

Package Overview
Dependencies
15
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    elasticitems

Faceted search client on top of Elasticsearch 7.x


Version published
Weekly downloads
23
Maintainers
1
Created
Weekly downloads
 

Readme

Source

ElasticItems

Elasticsearch 7.x client for JS with faceted search, custom features and simple interface

Features

  • faceted search
  • full text
  • pagination
  • sorting

Getting Started

npm install elasticitems
const elasticitems = require('elasticitems')(es_config, search_config);
elasticitems.search()
.then(result => {
  console.log(result);
})

API

var elasticitems = ElasticItems(es_config, [search_config])

es_config

The first es_config is elasticsearch configuration object and contains values like host, index or type.

search_config

Responsible for defining global configuration.

  • aggregations filters configuration i.e. for tags, actors, colors, etc. Responsible for generating facets.

  • sortings you can configure different sortings like tags_asc, tags_desc with options and later use it with one key.

elasticitems.search(options, [search_config])

options
  • per_page amount of items per page.

  • page page number - used for pagination.

  • query used for full text search.

  • operator search operator and and or (default). It works with query parameter

  • sort used for sorting. one of sortings key

  • filters filtering items based on specific aggregations i.e. {tags: ['drama' , 'historical']}

  • query_string i.e. "brand:Audi OR brand:Mercedes"

  • facets_names make faceted search only for specific fields i.e. ['tags', 'genres']

  • fields search only in specifc fields i.e. ['name', 'description']. Missing parameter means search in all fields

  • ids search by ids i.e. ['1', '2', '3']

  • exclude_ids exclude ids from search i.e. ['1', '2', '3']

elasticitems.similar(id, options)

Show similar items based on collaborative filtering

options
  • fields i.e ['tags'].

elasticitems.aggregation(options)

It returns full list of filters for specific aggregation

options
  • name aggregation name

  • per_page filters per page

  • size how much load into memory (for pagination)

  • page page number

  • sort responsible for sorting mechanism. It can be _count or _term

  • order responsible for an order. It can be asc or desc

  • filters filter this aggregation through another aggregations (facets)

  • aggregation_query used for quering filters. It's not full text search

  • query search through items

  • query_string search through items by query string i.e. (category:Garden and color:red)

elasticitems.get(id)

Returns found record otherwise throw an error

elasticitems.getBy(key, value)

Returns record based on key and value

elasticitems.add(data, [options])

Add a new object into index. Provide your own id if you don't want it auto-generated

elasticitems.partialUpdate(id, data, [options])

Updates object in index

elasticitems.delete(id)

Delete object from index

Notes

  • Full text search does not work on keyword type because this type is not tokenized. keyword type is great for faceted fields

Tests

npm test

FAQs

Last updated on 08 Jun 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc