🐂 Integrated elasticsearch search for issues in volumes with BullMQ
This commit is contained in:
@@ -18,6 +18,8 @@ const client = new Client({
|
||||
|
||||
import { DbMixin } from "../mixins/db.mixin";
|
||||
import Comic from "../models/comic.model";
|
||||
import { refineQuery } from "filename-parser";
|
||||
import { filter } from "lodash";
|
||||
|
||||
console.log(client);
|
||||
|
||||
@@ -38,15 +40,34 @@ export default class SettingsService extends Service {
|
||||
searchComic: {
|
||||
rest: "POST /searchComic",
|
||||
params: {},
|
||||
async handler(ctx: Context<{}>) {
|
||||
Comic.esSearch({
|
||||
query_string: {
|
||||
query: "batman",
|
||||
timeout: 400000,
|
||||
async handler(
|
||||
ctx: Context<{ queryObject: {
|
||||
issueName: string,
|
||||
issueNumber: string,
|
||||
} }>
|
||||
) {
|
||||
console.log(ctx.params);
|
||||
return Comic.esSearch({
|
||||
query: {
|
||||
match: {
|
||||
"rawFileDetails.name": {
|
||||
query: ctx.params.queryObject.issueName,
|
||||
operator: "or",
|
||||
fuzziness: "AUTO",
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
}).then(function (results) {
|
||||
// results here
|
||||
console.log(results.body.hits.hits);
|
||||
results.body.hits.hits.forEach((item) => console.log(item._source))
|
||||
const foo = results.body.hits.hits.map((hit) => {
|
||||
const parsedFilename = refineQuery(hit._source.rawFileDetails.name);
|
||||
if(parsedFilename.searchParams.searchTerms.number === parseInt(ctx.params.queryObject.issueNumber, 10)) {
|
||||
return hit;
|
||||
}
|
||||
});
|
||||
return filter(foo, null);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user