Faceted search client on top of OpenSearch
npm install elasticitemsElasticsearch 7.x client for JS with faceted search, custom features and simple interface
- faceted search
- full text
- pagination
- sorting
``bash`
npm install elasticitems
`js`
const elasticitems = require('elasticitems')(es_config, search_config);
elasticitems.search()
.then(result => {
console.log(result);
})
#### 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.
#### 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']
Show similar items based on collaborative filtering
#### options
* fields i.e ['tags'].
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)
Returns found record otherwise throw an error
Returns record based on key and value
Add a new object into index. Provide your own id if you don't want it auto-generated
Updates object in index
Delete object from index
- Full text search does not work on keyword type because this type is not tokenized. keyword type is great for faceted fields
```
npm test