Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vsimko/node-solr-lambda
Minimalistic Solr client written in functional programming style
https://github.com/vsimko/node-solr-lambda
functional-style node-js node-module solr solr-client
Last synced: 26 days ago
JSON representation
Minimalistic Solr client written in functional programming style
- Host: GitHub
- URL: https://github.com/vsimko/node-solr-lambda
- Owner: vsimko
- Created: 2018-06-19T19:21:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-09-27T20:44:28.000Z (about 1 year ago)
- Last Synced: 2024-09-19T07:51:07.395Z (about 2 months ago)
- Topics: functional-style, node-js, node-module, solr, solr-client
- Language: JavaScript
- Homepage:
- Size: 502 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# node-solr-lambda
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
## Features
- functional-style API with jsdoc type annotations
- plain javascipt in commonjs format - no additional build step required
- ES6+ including async/await, lambdas, spread operator...
- typechecking support in vscode (without compiling typescript code)
- no runtime dependencies other than `axios`
- as close as possible to the Solr Json-based REST API
- functions for working with documents, fields, field types, cores## Example
```js
const { prepareSolrClient } = require("node-solr-lambda");
const solr = prepareSolrClient("mycore");async function myfun() {
const result = await solr.query({ query: "label:something" });
console.log(result);await solr.addField({ name: "price", type: "plong", multiValued: false });
await solr.addField({
name: "category",
type: "string",
multiValued: true,
docValues: true
});const item1 = { id: "item1", price: 123, category: ["cpu", "ram"] };
const item2 = { id: "item2", price: 456, category: ["cpu", "usb"] };
await solr.add(item1); // works with single object
await solr.add([item1, item2]); // works with object[]
await solr.commit()await solr.query({
query: "*:*",
facet: {
top_5_categories: {
terms: {
field: "category",
limit: 5,
facet: {
avg_price: "avg(price)"
}
}
}
}
});
}
```## How to test
We provide a docker-compose with a solr instance for testing.
The testing solr instance needs to run first:
```sh
# run this in a separate terminal and shutdown using CTRL+C
yarn test:prepare
```Now you can run the test suite:
```sh
yarn test
```