Skip to content

Commit

Permalink
Merge pull request #6 from Blynskyniki/fix-aggs-terms-filtered
Browse files Browse the repository at this point in the history
feat: publish elastic-dsl-typescript@1.0.6
  • Loading branch information
Blynskyniki authored Nov 26, 2020
2 parents cfce18e + 28342d2 commit d7dd379
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 51 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "elastic-dsl-typescript",
"version": "1.0.5",
"version": "1.0.6",
"description": "Node.js ElasticSearch search query builder",
"main": "./",
"scripts": {
Expand Down
15 changes: 14 additions & 1 deletion src/Builders/Aggregation/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,21 @@ export class Aggregation<SCHEMA extends AggregationSchema> extends AbstractBulde
private _data = {};

public add<Type extends keyof SCHEMA>(aggType: Type, name: string, d: SCHEMA[Type]) {
const { filter, ...all } = d.params as { filter?: any };
if (filter) {
this._data[name] = {
filter,
aggs: {
[`${name}_filtered`]: {
[aggType]: { ...(all as object), ...((d.opts as object) || {}) }
}
}
};
return this;
}

this._data[name] = {
[aggType]: { ...(d.params as object), ...((d.opts as object) || {}) },
[aggType]: { ...(d.params as object), ...((d.opts as object) || {}) }
};
return this;
}
Expand Down
65 changes: 44 additions & 21 deletions src/__test__/Aggs/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@ describe('Check aggs builder', () => {
test('Create avg', async () => {
const a = new Aggregation().add('avg', 'my_avg', {
params: {
field: 'price',
field: "price",
script: {
params: {},
source: 'doc.my_avg.value * 2'
source: "doc.my_avg.value * 2"
}
}
});

expect(a.build()).toEqual({
my_avg: {
avg: {
field: 'price',
field: "price",
script: {
params: {},
source: 'doc.my_avg.value * 2'
source: "doc.my_avg.value * 2"
}
}
}
Expand All @@ -32,41 +32,41 @@ describe('Check aggs builder', () => {
const a = new Aggregation()
.add('max', 'my_max', {
params: {
field: 'price',
field: "price",

script: {
params: {},
source: 'doc.my_max.value * 2'
source: "doc.my_max.value * 2"
}
}
})
.add('min', 'my_min', {
params: {
field: 'price',
field: "price",

script: {
params: {},
source: 'doc.my_min.value * 2'
source: "doc.my_min.value * 2"
}
}
});

expect(a.build()).toEqual({
my_max: {
max: {
field: 'price',
field: "price",
script: {
params: {},
source: 'doc.my_max.value * 2'
source: "doc.my_max.value * 2"
}
}
},
my_min: {
min: {
field: 'price',
field: "price",
script: {
params: {},
source: 'doc.my_min.value * 2'
source: "doc.my_min.value * 2"
}
}
}
Expand All @@ -76,11 +76,11 @@ describe('Check aggs builder', () => {
test('Create terms', async () => {
const a = new Aggregation().add('terms', 'my_terms', {
params: {
field: 'color'
field: "color"
},
opts: {
exclude: ['red'],
include: ['black', 'green'],
exclude: ["red"],
include: ["black", "green"],
min_doc_count: 2,
size: 100
}
Expand All @@ -89,9 +89,9 @@ describe('Check aggs builder', () => {
expect(a.build()).toEqual({
my_terms: {
terms: {
exclude: ['red'],
field: 'color',
include: ['black', 'green'],
exclude: ["red"],
field: "color",
include: ["black", "green"],
min_doc_count: 2,
size: 100
}
Expand All @@ -102,7 +102,7 @@ describe('Check aggs builder', () => {
test('Create range', async () => {
const a = new Aggregation().add('range', 'my_range', {
params: {
field: 'price',
field: "price",
ranges: [
{
from: 100
Expand All @@ -117,7 +117,7 @@ describe('Check aggs builder', () => {
expect(a.build()).toEqual({
my_range: {
range: {
field: 'price',
field: "price",
ranges: [
{
from: 100
Expand All @@ -136,7 +136,7 @@ describe('Check aggs builder', () => {

a.add('range', 'my_range', {
params: {
field: 'price',
field: "price",
ranges: [
{
from: 100
Expand All @@ -150,4 +150,27 @@ describe('Check aggs builder', () => {

expect(a.isNotEmty()).toBeTruthy();
});

test("Create filtered terms agg", async () => {
const a = new Aggregation().add("terms", "availStoreSizes", {
params: {
field: "availSizes.sizes.keyword",
filter: { terms: { "availSizes.IStoreId.keyword": ["0000"] } }
},
opts: {
size: 50
}
});
// availStoreSizes: {
// aggs: { sizes: { terms: { field: 'availSizes.sizes.keyword', size: 50 } } },
// filter: { terms: { 'availSizes.IStoreId.keyword': ['0000'] } },
// },

expect(a.build()).toEqual({
availStoreSizes: {
aggs: { availStoreSizes_filtered: { terms: { field: "availSizes.sizes.keyword", size: 50 } } },
filter: { terms: { "availSizes.IStoreId.keyword": ["0000"] } }
}
});
});
});
35 changes: 10 additions & 25 deletions src/__test__/Bool/BoolBulder.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,8 @@ describe('BoolBulder tests', () => {


expect(b.build()).toHaveProperty(
'bool',
expect.objectContaining({
must: [
{
term: {
articul: {
boost: 1,
value: '00001851',
},
},
},
],
}),
"bool",
expect.objectContaining({ "must": [{ "term": { "articul": "00001851", "boost": 1 } }] })
);
});
test('Create range query', async () => {
Expand Down Expand Up @@ -208,36 +197,32 @@ describe('BoolBulder tests', () => {
filter: [
{
term: {
test: {
value: "11"
}
test: "11"

}
}
],
must: [
{
term: {
test: {
value: "11"
}
test: "11"

}
}
],
must_not: [
{
term: {
test: {
value: "11"
}
test: "11"

}
}
],
should: [
{
term: {
test: {
value: "11"
}
test: "11"

}
}
]
Expand Down
5 changes: 2 additions & 3 deletions src/__test__/Query/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,8 @@ describe('ScriptFields tests', () => {
must: [
{
term: {
articul: {
value: '111',
},
articul: "111"

},
},
],
Expand Down
1 change: 1 addition & 0 deletions src/__test__/Text/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ describe('TEXT tests', () => {
auto_generate_synonyms_phrase_query: true,
fuzziness: "6",
fuzzy_transpositions: true,
max_expansions: 1,
operator: "AND",
prefix_length: 15,
query: "search text"
Expand Down

0 comments on commit d7dd379

Please sign in to comment.