mirror of
https://github.com/alexankitty/Myrient-Search-Engine.git
synced 2026-01-15 16:33:15 -03:00
* 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)
40 lines
811 B
JavaScript
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();
|
|
}
|
|
}
|