mirror of
https://github.com/alexankitty/Myrient-Search-Engine.git
synced 2026-01-15 16:33:15 -03:00
* Bug fix: Dirty update of default settings due to pass by reference
This commit is contained in:
@@ -144,8 +144,10 @@ export async function bulkIndexFiles(files) {
|
||||
|
||||
export async function search(query, options) {
|
||||
//add kws for selected fields
|
||||
let builtFields = []
|
||||
for(let field in options.fields){
|
||||
options.fields.push(options.fields[field] + 'kws')
|
||||
builtFields.push(options.fields[field])
|
||||
builtFields.push(options.fields[field] + 'kws')
|
||||
}
|
||||
const searchQuery = {
|
||||
index: INDEX_NAME,
|
||||
@@ -153,8 +155,8 @@ export async function search(query, options) {
|
||||
size: 1500,
|
||||
query: {
|
||||
bool: {
|
||||
must: buildMustClauses(query, options),
|
||||
should: buildShouldClauses(query, options)
|
||||
must: buildMustClauses(query, options, builtFields),
|
||||
should: buildShouldClauses(query, options, builtFields)
|
||||
}
|
||||
},
|
||||
highlight: {
|
||||
@@ -214,7 +216,7 @@ export async function search(query, options) {
|
||||
}
|
||||
}
|
||||
|
||||
function buildMustClauses(query, options) {
|
||||
function buildMustClauses(query, options, builtFields) {
|
||||
const clauses = [];
|
||||
|
||||
if (options.combineWith === 'AND') {
|
||||
@@ -222,7 +224,7 @@ function buildMustClauses(query, options) {
|
||||
clauses.push({
|
||||
multi_match: {
|
||||
query: term,
|
||||
fields: options.fields.map(field =>
|
||||
fields: builtFields.map(field =>
|
||||
field === 'filename' || 'filenamekws' ? `${field}^2` : field
|
||||
),
|
||||
fuzziness: options.fuzzy || 0,
|
||||
@@ -235,14 +237,14 @@ function buildMustClauses(query, options) {
|
||||
return clauses;
|
||||
}
|
||||
|
||||
function buildShouldClauses(query, options) {
|
||||
function buildShouldClauses(query, options, builtFields) {
|
||||
const clauses = [];
|
||||
|
||||
if (options.combineWith !== 'AND') {
|
||||
clauses.push({
|
||||
multi_match: {
|
||||
query,
|
||||
fields: options.fields.map(field =>
|
||||
fields: builtFields.map(field =>
|
||||
field === 'filename' || 'filenamekws' ? `${field}^2` : field
|
||||
),
|
||||
fuzziness: options.fuzzy || 0,
|
||||
|
||||
Reference in New Issue
Block a user