Skip to content

Commit e7b1bd2

Browse files
committed
* Bug fix: Dirty update of default settings due to pass by reference
1 parent 66abe66 commit e7b1bd2

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

lib/services/elasticsearch.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,17 +144,19 @@ export async function bulkIndexFiles(files) {
144144

145145
export async function search(query, options) {
146146
//add kws for selected fields
147+
let builtFields = []
147148
for(let field in options.fields){
148-
options.fields.push(options.fields[field] + 'kws')
149+
builtFields.push(options.fields[field])
150+
builtFields.push(options.fields[field] + 'kws')
149151
}
150152
const searchQuery = {
151153
index: INDEX_NAME,
152154
body: {
153155
size: 1500,
154156
query: {
155157
bool: {
156-
must: buildMustClauses(query, options),
157-
should: buildShouldClauses(query, options)
158+
must: buildMustClauses(query, options, builtFields),
159+
should: buildShouldClauses(query, options, builtFields)
158160
}
159161
},
160162
highlight: {
@@ -214,15 +216,15 @@ export async function search(query, options) {
214216
}
215217
}
216218

217-
function buildMustClauses(query, options) {
219+
function buildMustClauses(query, options, builtFields) {
218220
const clauses = [];
219221

220222
if (options.combineWith === 'AND') {
221223
query.split(' ').forEach(term => {
222224
clauses.push({
223225
multi_match: {
224226
query: term,
225-
fields: options.fields.map(field =>
227+
fields: builtFields.map(field =>
226228
field === 'filename' || 'filenamekws' ? `${field}^2` : field
227229
),
228230
fuzziness: options.fuzzy || 0,
@@ -235,14 +237,14 @@ function buildMustClauses(query, options) {
235237
return clauses;
236238
}
237239

238-
function buildShouldClauses(query, options) {
240+
function buildShouldClauses(query, options, builtFields) {
239241
const clauses = [];
240242

241243
if (options.combineWith !== 'AND') {
242244
clauses.push({
243245
multi_match: {
244246
query,
245-
fields: options.fields.map(field =>
247+
fields: builtFields.map(field =>
246248
field === 'filename' || 'filenamekws' ? `${field}^2` : field
247249
),
248250
fuzziness: options.fuzzy || 0,

0 commit comments

Comments
 (0)