Files
Myrient-Search-Engine/lib/search.js
Alexandra 3e6f6eeb36 * reimplement searchalikes
* separate kws based on categories
* auto include kws based on field options
* add roman numeral parse
* add number to name
* split out json search alikes to be per category
* add new kws columns to Files
* add search sample for determining if a game is in a series (maybe this could be useful somewhere else, too)
2025-05-18 07:11:37 -06:00

40 lines
811 B
JavaScript

import debugPrint from "./debugprint.js";
import {
search as elasticSearch,
getSuggestions as elasticSuggestions,
} from "./services/elasticsearch.js";
import { File } from "./models/index.js";
export default class Searcher {
constructor(fields) {
this.fields = [...fields];
this.indexing = false;
}
async findAllMatches(query, options) {
try {
return await elasticSearch(query, options);
} catch (err) {
console.error(err);
return { items: [], elapsed: 0 };
}
}
async getSuggestions(query, options) {
try {
return await elasticSuggestions(query, options);
} catch (err) {
console.error(err);
return [];
}
}
findIndex(id) {
return File.findByPk(id);
}
async getIndexSize() {
return await File.count();
}
}