2.0.15 • Published 3 years ago

elasticitems v2.0.15

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
3 years ago

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

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
2.0.15

3 years ago

2.0.14

3 years ago

2.0.12

3 years ago

2.0.10

3 years ago

2.0.8

3 years ago

2.0.6

3 years ago

2.0.2

3 years ago

2.0.0

3 years ago

1.0.19

5 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago