Socket
Socket
Sign inDemoInstall

lucene-query-builder

Package Overview
Dependencies
0
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.3 to 0.4.0

lib/cjs/fq.d.ts

25

lib/cjs/functions/processTerms.js

@@ -11,13 +11,18 @@ "use strict";

*/
const processTerms = (terms, bond) => terms
.map((term) => {
const entries = Object.entries(term);
if (entries.length === 0)
const processTerms = (terms, bond) => {
if (!(terms === null || terms === void 0 ? void 0 : terms.length))
return '';
const [key, value] = entries[0];
const values = Array.isArray(value) ? value : [value];
return `(${values.map((val) => `${key}:${val}`).join(' OR ')})`;
})
.filter(Boolean)
.join(` ${bond} `);
return (`${bond} ` +
terms
.map((term) => {
const entries = Object.entries(term);
if (entries.length === 0)
return '';
const [key, value] = entries[0];
const values = Array.isArray(value) ? value : [value];
return `(${values.map((val) => `${key}:${val}`).join(' OR ')})`;
})
.filter(Boolean)
.join(` ${bond} `));
};
exports.processTerms = processTerms;
import { query } from './query';
import { QueryBuilder } from './QueryBuilder';
export { query, QueryBuilder };
import { LuceneBuilder } from './LuceneBuilder';
import { fq } from './fq';
export { query, fq, LuceneBuilder };

8

lib/cjs/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryBuilder = exports.query = void 0;
exports.LuceneBuilder = exports.fq = exports.query = void 0;
const query_1 = require("./query");
Object.defineProperty(exports, "query", { enumerable: true, get: function () { return query_1.query; } });
const QueryBuilder_1 = require("./QueryBuilder");
Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return QueryBuilder_1.QueryBuilder; } });
const LuceneBuilder_1 = require("./LuceneBuilder");
Object.defineProperty(exports, "LuceneBuilder", { enumerable: true, get: function () { return LuceneBuilder_1.LuceneBuilder; } });
const fq_1 = require("./fq");
Object.defineProperty(exports, "fq", { enumerable: true, get: function () { return fq_1.fq; } });

@@ -13,2 +13,8 @@ /**

}
/**
* Filter used in the query. The key is the field name.
*/
export interface Filter {
[key: string]: string | number | Array<string | number> | null;
}
export interface PhraseOptions {

@@ -15,0 +21,0 @@ /** Number of letters in phrase to start fuzzy matching. */

@@ -8,12 +8,17 @@ /**

*/
export const processTerms = (terms, bond) => terms
.map((term) => {
const entries = Object.entries(term);
if (entries.length === 0)
export const processTerms = (terms, bond) => {
if (!(terms === null || terms === void 0 ? void 0 : terms.length))
return '';
const [key, value] = entries[0];
const values = Array.isArray(value) ? value : [value];
return `(${values.map((val) => `${key}:${val}`).join(' OR ')})`;
})
.filter(Boolean)
.join(` ${bond} `);
return (`${bond} ` +
terms
.map((term) => {
const entries = Object.entries(term);
if (entries.length === 0)
return '';
const [key, value] = entries[0];
const values = Array.isArray(value) ? value : [value];
return `(${values.map((val) => `${key}:${val}`).join(' OR ')})`;
})
.filter(Boolean)
.join(` ${bond} `));
};
import { query } from './query';
import { QueryBuilder } from './QueryBuilder';
export { query, QueryBuilder };
import { LuceneBuilder } from './LuceneBuilder';
import { fq } from './fq';
export { query, fq, LuceneBuilder };
import { query } from './query';
import { QueryBuilder } from './QueryBuilder';
export { query, QueryBuilder };
import { LuceneBuilder } from './LuceneBuilder';
import { fq } from './fq';
export { query, fq, LuceneBuilder };

@@ -13,2 +13,8 @@ /**

}
/**
* Filter used in the query. The key is the field name.
*/
export interface Filter {
[key: string]: string | number | Array<string | number> | null;
}
export interface PhraseOptions {

@@ -15,0 +21,0 @@ /** Number of letters in phrase to start fuzzy matching. */

{
"name": "lucene-query-builder",
"version": "0.3.3",
"version": "0.4.0",
"description": "Library to build lucene queries in a typescript friendly way",

@@ -16,3 +16,3 @@ "main": "lib/cjs/index.js",

"compile": "npx tsc -p tsconfig.json && npx tsc -p tsconfig-cjs.json",
"format": "prettier --write \"src/**/*.ts\"",
"format": "prettier --write \"src/**/*.ts\" \"example/**/*.ts\"",
"test": "echo \"Error: no test specified\" && exit 1",

@@ -19,0 +19,0 @@ "prepublishOnly": "npm run compile"

@@ -5,2 +5,4 @@ # Lucene Query Builder

Tested with AWS CloudSearch.
## Installation

@@ -23,3 +25,3 @@

```typescript
import { query } from 'lucene-query-builder'
import { fq, query } from 'lucene-query-builder'

@@ -29,3 +31,3 @@ const myQuery = query({

and: [{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }],
not: [{ fieldName: 'value2' }],
not: [{ fieldName: 'value3' }],
options: {

@@ -38,3 +40,3 @@ fuzzyLetters: 5,

console.log(myQuery)
const myFilterQuery = fq([{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }])
```

@@ -45,5 +47,5 @@

```typescript
import { QueryBuilder } from 'lucene-query-builder'
import { LuceneBuilder } from 'lucene-query-builder'
const queryBuilder = new QueryBuilder({
const queryBuilder = new LuceneBuilder({
fuzzyLetters: 5,

@@ -57,8 +59,41 @@ fuzzyLevel: 1,

and: [{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }],
not: [{ fieldName: 'value2' }],
not: [{ fieldName: 'value3' }],
})
console.log(myQuery)
const myFilterQuery = queryBuilder.fq([{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }])
```
Basic usage with AWS CloudSearch
```typescript
import { CloudSearchDomainClient, SearchCommand } from '@aws-sdk/client-cloudsearch-domain'
import { fq, query } from 'lucene-query-builder'
const client = new CloudSearchDomainClient({
region: '<region>',
endpoint: '<endpoint>',
credentials: {
accessKeyId: '<accessKeyId>',
secretAccessKey: '<secretAccessKey>',
},
})
const myQuery = query({
phrase: 'Hello world',
and: [{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }],
not: [{ fieldName: 'value3' }],
})
const myFilterQuery = fq([{ fieldName: 'value1' }, { anotherField: ['value1', 'value2'] }])
const command = new SearchCommand({
query: myQuery,
queryParser: 'lucene',
return: '_all_fields',
filterQuery: myFilterQuery,
})
const { hits, status } = await client.send(command)
```
## Function Parameters and Options

@@ -65,0 +100,0 @@

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