@meilisearch/cli 0.0.0-stage → 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +72 -2
- package/bin/run.js +15 -0
- package/dist/commands/add/documents.js +54 -0
- package/dist/commands/add/documents.js.map +1 -0
- package/dist/commands/add/indexes.js +39 -0
- package/dist/commands/add/indexes.js.map +1 -0
- package/dist/commands/add/keys.js +63 -0
- package/dist/commands/add/keys.js.map +1 -0
- package/dist/commands/add/projects.js +96 -0
- package/dist/commands/add/projects.js.map +1 -0
- package/dist/commands/auth/login.js +26 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.js +31 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/refresh.js +22 -0
- package/dist/commands/auth/refresh.js.map +1 -0
- package/dist/commands/auth/status.js +34 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/cancel/tasks.js +24 -0
- package/dist/commands/cancel/tasks.js.map +1 -0
- package/dist/commands/config/list.js +18 -0
- package/dist/commands/config/list.js.map +1 -0
- package/dist/commands/config/set.js +48 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/config/sync-with-cloud.js +144 -0
- package/dist/commands/config/sync-with-cloud.js.map +1 -0
- package/dist/commands/config/unset.js +28 -0
- package/dist/commands/config/unset.js.map +1 -0
- package/dist/commands/config/update.js +53 -0
- package/dist/commands/config/update.js.map +1 -0
- package/dist/commands/delete/documents.js +81 -0
- package/dist/commands/delete/documents.js.map +1 -0
- package/dist/commands/delete/indexes.js +28 -0
- package/dist/commands/delete/indexes.js.map +1 -0
- package/dist/commands/delete/keys.js +28 -0
- package/dist/commands/delete/keys.js.map +1 -0
- package/dist/commands/delete/projects.js +40 -0
- package/dist/commands/delete/projects.js.map +1 -0
- package/dist/commands/delete/settings.js +28 -0
- package/dist/commands/delete/settings.js.map +1 -0
- package/dist/commands/delete/tasks.js +34 -0
- package/dist/commands/delete/tasks.js.map +1 -0
- package/dist/commands/export.js +67 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/facet-search.js +87 -0
- package/dist/commands/facet-search.js.map +1 -0
- package/dist/commands/get/batches.js +35 -0
- package/dist/commands/get/batches.js.map +1 -0
- package/dist/commands/get/documents.js +74 -0
- package/dist/commands/get/documents.js.map +1 -0
- package/dist/commands/get/health.js +17 -0
- package/dist/commands/get/health.js.map +1 -0
- package/dist/commands/get/indexes.js +33 -0
- package/dist/commands/get/indexes.js.map +1 -0
- package/dist/commands/get/keys.js +36 -0
- package/dist/commands/get/keys.js.map +1 -0
- package/dist/commands/get/projects.js +40 -0
- package/dist/commands/get/projects.js.map +1 -0
- package/dist/commands/get/settings.js +25 -0
- package/dist/commands/get/settings.js.map +1 -0
- package/dist/commands/get/stats.js +37 -0
- package/dist/commands/get/stats.js.map +1 -0
- package/dist/commands/get/tasks.js +35 -0
- package/dist/commands/get/tasks.js.map +1 -0
- package/dist/commands/get/version.js +16 -0
- package/dist/commands/get/version.js.map +1 -0
- package/dist/commands/multi-search.js +39 -0
- package/dist/commands/multi-search.js.map +1 -0
- package/dist/commands/schema.js +95 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/search.js +164 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/similar.js +86 -0
- package/dist/commands/similar.js.map +1 -0
- package/dist/commands/teleport.js +466 -0
- package/dist/commands/teleport.js.map +1 -0
- package/dist/commands/update/documents.js +56 -0
- package/dist/commands/update/documents.js.map +1 -0
- package/dist/commands/update/indexes.js +44 -0
- package/dist/commands/update/indexes.js.map +1 -0
- package/dist/commands/update/keys.js +42 -0
- package/dist/commands/update/keys.js.map +1 -0
- package/dist/commands/update/projects.js +62 -0
- package/dist/commands/update/projects.js.map +1 -0
- package/dist/commands/update/settings.js +145 -0
- package/dist/commands/update/settings.js.map +1 -0
- package/dist/lib/api-naming.js +435 -0
- package/dist/lib/api-naming.js.map +1 -0
- package/dist/lib/base-command.js +285 -0
- package/dist/lib/base-command.js.map +1 -0
- package/dist/lib/clients/management/generated/client/client.gen.js +217 -0
- package/dist/lib/clients/management/generated/client/client.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/client/index.js +7 -0
- package/dist/lib/clients/management/generated/client/index.js.map +1 -0
- package/dist/lib/clients/management/generated/client/types.gen.js +3 -0
- package/dist/lib/clients/management/generated/client/types.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/client/utils.gen.js +229 -0
- package/dist/lib/clients/management/generated/client/utils.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/client.gen.js +4 -0
- package/dist/lib/clients/management/generated/client.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/auth.gen.js +15 -0
- package/dist/lib/clients/management/generated/core/auth.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/bodySerializer.gen.js +58 -0
- package/dist/lib/clients/management/generated/core/bodySerializer.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/params.gen.js +110 -0
- package/dist/lib/clients/management/generated/core/params.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/pathSerializer.gen.js +107 -0
- package/dist/lib/clients/management/generated/core/pathSerializer.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/queryKeySerializer.gen.js +93 -0
- package/dist/lib/clients/management/generated/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/serverSentEvents.gen.js +133 -0
- package/dist/lib/clients/management/generated/core/serverSentEvents.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/types.gen.js +3 -0
- package/dist/lib/clients/management/generated/core/types.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/core/utils.gen.js +88 -0
- package/dist/lib/clients/management/generated/core/utils.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/index.js +3 -0
- package/dist/lib/clients/management/generated/index.js.map +1 -0
- package/dist/lib/clients/management/generated/sdk.gen.js +398 -0
- package/dist/lib/clients/management/generated/sdk.gen.js.map +1 -0
- package/dist/lib/clients/management/generated/types.gen.js +3 -0
- package/dist/lib/clients/management/generated/types.gen.js.map +1 -0
- package/dist/lib/clients/management.js +21 -0
- package/dist/lib/clients/management.js.map +1 -0
- package/dist/lib/clients/meilisearch.js +69 -0
- package/dist/lib/clients/meilisearch.js.map +1 -0
- package/dist/lib/clients/oauth.js +225 -0
- package/dist/lib/clients/oauth.js.map +1 -0
- package/dist/lib/clients/ping.js +26 -0
- package/dist/lib/clients/ping.js.map +1 -0
- package/dist/lib/clients/trace.js +69 -0
- package/dist/lib/clients/trace.js.map +1 -0
- package/dist/lib/cloud-sync.js +113 -0
- package/dist/lib/cloud-sync.js.map +1 -0
- package/dist/lib/config.js +317 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.js +302 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/help.js +37 -0
- package/dist/lib/help.js.map +1 -0
- package/dist/lib/input.js +76 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/login.js +43 -0
- package/dist/lib/login.js.map +1 -0
- package/dist/lib/output.js +39 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pagination.js +52 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/session.js +149 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/task-filters.js +118 -0
- package/dist/lib/task-filters.js.map +1 -0
- package/dist/lib/tasks.js +64 -0
- package/dist/lib/tasks.js.map +1 -0
- package/dist/lib/terminal.js +146 -0
- package/dist/lib/terminal.js.map +1 -0
- package/dist/lib/values.js +48 -0
- package/dist/lib/values.js.map +1 -0
- package/oclif.manifest.json +10470 -0
- package/package.json +81 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-search.js","sourceRoot":"","sources":["../../src/commands/multi-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAY,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,GAAG,GAAQ,aAAa,CAAC;IAEhC,MAAM,CAAC,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEvC,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE/B,MAAM,CAAU,WAAW,GACzB,wJAAwJ,CAAC;IAE3J,MAAM,CAAU,QAAQ,GAAG;QACzB,+IAA+I;QAC/I,wHAAwH;QACxH,sKAAsK;QACtK,gFAAgF;KACjF,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,eAAe;QAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,WAAW,EACT,uIAAuI;YACzI,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;YACvB,WAAW,EACT,iKAAiK;YACnK,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,GAAG,WAAW,CAAC,cAAc;KAC9B,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,6FAA6F;QAC7F,MAAM,MAAM,GAAG,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEjF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAA2B,CAAC,CAAC,CAAC;IACrF,CAAC;CACF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Flags, toConfiguredId } from "@oclif/core";
|
|
2
|
+
import { BaseCommand } from "../lib/base-command.js";
|
|
3
|
+
import { closestCommand, MeiliCliError } from "../lib/errors.js";
|
|
4
|
+
/** The global flags, projected once: the index prints them, a command never repeats them. */
|
|
5
|
+
const GLOBAL_FLAGS = Object.entries(BaseCommand.baseFlags).map(([name, flag]) => describeFlag(name, flag));
|
|
6
|
+
export default class Schema extends BaseCommand {
|
|
7
|
+
static api = "none";
|
|
8
|
+
static description = "Print one line per command, or one command in full with --command, from the oclif manifest.";
|
|
9
|
+
static examples = [
|
|
10
|
+
"<%= config.bin %> <%= command.id %>",
|
|
11
|
+
"<%= config.bin %> <%= command.id %> --output json",
|
|
12
|
+
'<%= config.bin %> <%= command.id %> --command "get indexes"',
|
|
13
|
+
"<%= config.bin %> <%= command.id %> | jq '.commands[].id'",
|
|
14
|
+
];
|
|
15
|
+
static flags = {
|
|
16
|
+
command: Flags.string({
|
|
17
|
+
description: "Print this command in full instead of the index: its API, its routes, its key actions, the flags it declares itself and its examples.",
|
|
18
|
+
helpValue: "<command>",
|
|
19
|
+
}),
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(Schema);
|
|
23
|
+
const commands = this.config.commands.filter((command) => command.hidden !== true);
|
|
24
|
+
if (flags.command === undefined) {
|
|
25
|
+
await this.output({
|
|
26
|
+
name: this.config.bin,
|
|
27
|
+
version: this.config.version,
|
|
28
|
+
globalFlags: GLOBAL_FLAGS,
|
|
29
|
+
commands: commands
|
|
30
|
+
.map((command) => ({
|
|
31
|
+
id: toConfiguredId(command.id, this.config),
|
|
32
|
+
// The first paragraph only: what follows is a warning the detail carries.
|
|
33
|
+
description: (command.description ?? "").split("\n\n")[0],
|
|
34
|
+
routes: omitEmpty(command.routes),
|
|
35
|
+
}))
|
|
36
|
+
.sort((a, b) => a.id.localeCompare(b.id)),
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const found = commands.find((command) => toConfiguredId(command.id, this.config) === flags.command);
|
|
41
|
+
if (found === undefined) {
|
|
42
|
+
const closest = closestCommand(flags.command, commands.map((command) => toConfiguredId(command.id, this.config)));
|
|
43
|
+
throw new MeiliCliError("cli_usage", `\`${flags.command}\` is not a command of meili.`, {
|
|
44
|
+
hint: closest === undefined
|
|
45
|
+
? "Run `meili schema` to see every command."
|
|
46
|
+
: `Did you mean \`meili schema --command "${closest}"\`?`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
await this.output(await this.describe(found));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* One command in full. The manifest describes it, except for the flags: the
|
|
53
|
+
* class separates the flags the command declares itself from the global ones
|
|
54
|
+
* it inherits, which the index already prints. `JSON.stringify` drops the
|
|
55
|
+
* undefined fields.
|
|
56
|
+
*/
|
|
57
|
+
async describe(command) {
|
|
58
|
+
const id = toConfiguredId(command.id, this.config);
|
|
59
|
+
// A command with no flags of its own does not set the static at all.
|
|
60
|
+
const own = (await command.load()).flags ?? {};
|
|
61
|
+
return {
|
|
62
|
+
id,
|
|
63
|
+
description: command.description ?? "",
|
|
64
|
+
api: command.api,
|
|
65
|
+
routes: omitEmpty(command.routes),
|
|
66
|
+
async: Object.keys(BaseCommand.waitFlags).every((name) => name in own) || undefined,
|
|
67
|
+
keyActions: omitEmpty(command.keyActions),
|
|
68
|
+
flags: Object.entries(own)
|
|
69
|
+
.filter(([, flag]) => flag.hidden !== true)
|
|
70
|
+
.map(([name, flag]) => describeFlag(name, flag)),
|
|
71
|
+
examples: (command.examples ?? []).map((example) => (typeof example === "string" ? example : example.command)
|
|
72
|
+
.replaceAll("<%= config.bin %>", this.config.bin)
|
|
73
|
+
.replaceAll("<%= command.id %>", id)),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** An empty list is absent from the output rather than printed as `[]`. */
|
|
78
|
+
function omitEmpty(list) {
|
|
79
|
+
return list.length === 0 ? undefined : list;
|
|
80
|
+
}
|
|
81
|
+
/** The fields of a flag an agent needs. Absent means false, empty or not applicable. */
|
|
82
|
+
function describeFlag(name, flag) {
|
|
83
|
+
return {
|
|
84
|
+
name,
|
|
85
|
+
type: flag.type,
|
|
86
|
+
char: flag.char,
|
|
87
|
+
required: flag.required === true || undefined,
|
|
88
|
+
description: flag.description,
|
|
89
|
+
helpValue: flag.type === "option" ? flag.helpValue : undefined,
|
|
90
|
+
options: flag.type === "option" ? flag.options : undefined,
|
|
91
|
+
dependsOn: flag.dependsOn,
|
|
92
|
+
exclusive: flag.exclusive,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { BaseCommand } from "../lib/base-command.js";
|
|
3
|
+
import { readBodyWithFields } from "../lib/input.js";
|
|
4
|
+
import { asJson, asNumber } from "../lib/values.js";
|
|
5
|
+
export default class Search extends BaseCommand {
|
|
6
|
+
static api = "meilisearch";
|
|
7
|
+
static routes = ["POST /indexes/{index_uid}/search"];
|
|
8
|
+
static keyActions = ["search"];
|
|
9
|
+
static description = "Search the documents of an index, with --q and the search parameters of the route.";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --q nosferatu",
|
|
12
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --q nosferatu --output json",
|
|
13
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --q horror --filter 'rating > 4' --sort rating:desc --limit 5",
|
|
14
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --facets genres --attributes-to-retrieve id,title",
|
|
15
|
+
'<%= config.bin %> <%= command.id %> --project prod --index movies --data \'{"q":"nosferatu","hybrid":{"embedder":"default","semanticRatio":0.5}}\'',
|
|
16
|
+
];
|
|
17
|
+
static flags = {
|
|
18
|
+
...BaseCommand.connectionFlags,
|
|
19
|
+
index: Flags.string({
|
|
20
|
+
required: true,
|
|
21
|
+
description: "The index to search in.",
|
|
22
|
+
helpValue: "<index>",
|
|
23
|
+
}),
|
|
24
|
+
q: Flags.string({
|
|
25
|
+
description: "The search terms. Omit it for a placeholder search, which returns everything.",
|
|
26
|
+
helpValue: "<query>",
|
|
27
|
+
}),
|
|
28
|
+
offset: Flags.integer({
|
|
29
|
+
description: "Number of documents to skip. Ignored when --page or --hits-per-page is given.",
|
|
30
|
+
helpValue: "<n>",
|
|
31
|
+
}),
|
|
32
|
+
limit: Flags.integer({
|
|
33
|
+
description: "Maximum number of documents to return, 20 by default. Ignored when --page or --hits-per-page is given.",
|
|
34
|
+
helpValue: "<n>",
|
|
35
|
+
}),
|
|
36
|
+
page: Flags.integer({
|
|
37
|
+
description: "Page to return, 1-indexed. The response then carries totalHits and totalPages instead of estimatedTotalHits.",
|
|
38
|
+
helpValue: "<n>",
|
|
39
|
+
}),
|
|
40
|
+
"hits-per-page": Flags.integer({
|
|
41
|
+
description: "Number of documents per page, used with --page. 0 counts without returning any.",
|
|
42
|
+
helpValue: "<n>",
|
|
43
|
+
}),
|
|
44
|
+
"attributes-to-retrieve": Flags.string({
|
|
45
|
+
description: "Document attributes to return, comma-separated. Defaults to the displayed ones.",
|
|
46
|
+
helpValue: "<fields>",
|
|
47
|
+
}),
|
|
48
|
+
"attributes-to-crop": Flags.string({
|
|
49
|
+
description: "Attributes to crop in _formatted, comma-separated, each optionally as `attribute:length`.",
|
|
50
|
+
helpValue: "<fields>",
|
|
51
|
+
}),
|
|
52
|
+
"crop-length": Flags.integer({
|
|
53
|
+
description: "Maximum number of words in a cropped value, 10 by default.",
|
|
54
|
+
helpValue: "<n>",
|
|
55
|
+
}),
|
|
56
|
+
"crop-marker": Flags.string({
|
|
57
|
+
description: "String marking where a cropped value was cut, `…` by default.",
|
|
58
|
+
helpValue: "<string>",
|
|
59
|
+
}),
|
|
60
|
+
"attributes-to-highlight": Flags.string({
|
|
61
|
+
description: "Attributes to highlight in _formatted, comma-separated.",
|
|
62
|
+
helpValue: "<fields>",
|
|
63
|
+
}),
|
|
64
|
+
"highlight-pre-tag": Flags.string({
|
|
65
|
+
description: "String inserted before each highlighted term, `<em>` by default.",
|
|
66
|
+
helpValue: "<string>",
|
|
67
|
+
}),
|
|
68
|
+
"highlight-post-tag": Flags.string({
|
|
69
|
+
description: "String inserted after each highlighted term, `</em>` by default.",
|
|
70
|
+
helpValue: "<string>",
|
|
71
|
+
}),
|
|
72
|
+
"show-matches-position": Flags.boolean({
|
|
73
|
+
description: "Add _matchesPosition to each hit, the byte offset of every matched term.",
|
|
74
|
+
}),
|
|
75
|
+
filter: Flags.string({
|
|
76
|
+
description: "Filter expression, for example `rating > 4`. Its array-of-arrays form goes through --data.",
|
|
77
|
+
helpValue: "<filter>",
|
|
78
|
+
}),
|
|
79
|
+
sort: Flags.string({
|
|
80
|
+
description: "Attributes to sort on, comma-separated, each as `attribute:asc` or `:desc`.",
|
|
81
|
+
helpValue: "<sort>",
|
|
82
|
+
}),
|
|
83
|
+
distinct: Flags.string({
|
|
84
|
+
description: "Return one document per value of this attribute, which must be filterable.",
|
|
85
|
+
helpValue: "<attribute>",
|
|
86
|
+
}),
|
|
87
|
+
facets: Flags.string({
|
|
88
|
+
description: "Attributes to count in facetDistribution, comma-separated. Patterns such as `*` are accepted.",
|
|
89
|
+
helpValue: "<facets>",
|
|
90
|
+
}),
|
|
91
|
+
"matching-strategy": Flags.option({
|
|
92
|
+
options: ["last", "all", "frequency"],
|
|
93
|
+
description: "How query terms are relaxed when there are not enough results.",
|
|
94
|
+
})(),
|
|
95
|
+
"attributes-to-search-on": Flags.string({
|
|
96
|
+
description: "Restrict the search to these searchable attributes, comma-separated.",
|
|
97
|
+
helpValue: "<fields>",
|
|
98
|
+
}),
|
|
99
|
+
"ranking-score-threshold": Flags.string({
|
|
100
|
+
description: "Drop the hits whose ranking score is below this value, between 0.0 and 1.0.",
|
|
101
|
+
helpValue: "<number>",
|
|
102
|
+
}),
|
|
103
|
+
locales: Flags.string({
|
|
104
|
+
description: "ISO-639 locales of the query, comma-separated, instead of auto-detection.",
|
|
105
|
+
helpValue: "<locales>",
|
|
106
|
+
}),
|
|
107
|
+
hybrid: Flags.string({
|
|
108
|
+
description: 'Hybrid search as JSON, for example `{"embedder":"default","semanticRatio":0.5}`.',
|
|
109
|
+
helpValue: "<json>",
|
|
110
|
+
}),
|
|
111
|
+
vector: Flags.string({
|
|
112
|
+
description: "Query vector for a user-provided embedder, comma-separated numbers.",
|
|
113
|
+
helpValue: "<numbers>",
|
|
114
|
+
}),
|
|
115
|
+
"retrieve-vectors": Flags.boolean({
|
|
116
|
+
description: "Add _vectors to each hit, the embeddings of the document.",
|
|
117
|
+
}),
|
|
118
|
+
"show-ranking-score": Flags.boolean({
|
|
119
|
+
description: "Add _rankingScore to each hit, between 0.0 and 1.0.",
|
|
120
|
+
}),
|
|
121
|
+
"show-ranking-score-details": Flags.boolean({
|
|
122
|
+
description: "Add _rankingScoreDetails to each hit, the score of every ranking rule.",
|
|
123
|
+
}),
|
|
124
|
+
"show-performance-details": Flags.boolean({
|
|
125
|
+
description: "Add performanceDetails to the response, a timing breakdown of the query.",
|
|
126
|
+
}),
|
|
127
|
+
...BaseCommand.bodyInputFlags,
|
|
128
|
+
};
|
|
129
|
+
async run() {
|
|
130
|
+
const { flags } = await this.parse(Search);
|
|
131
|
+
const fromFlags = {
|
|
132
|
+
q: flags.q,
|
|
133
|
+
offset: flags.offset,
|
|
134
|
+
limit: flags.limit,
|
|
135
|
+
page: flags.page,
|
|
136
|
+
hitsPerPage: flags["hits-per-page"],
|
|
137
|
+
attributesToRetrieve: flags["attributes-to-retrieve"]?.split(","),
|
|
138
|
+
attributesToCrop: flags["attributes-to-crop"]?.split(","),
|
|
139
|
+
cropLength: flags["crop-length"],
|
|
140
|
+
cropMarker: flags["crop-marker"],
|
|
141
|
+
attributesToHighlight: flags["attributes-to-highlight"]?.split(","),
|
|
142
|
+
highlightPreTag: flags["highlight-pre-tag"],
|
|
143
|
+
highlightPostTag: flags["highlight-post-tag"],
|
|
144
|
+
showMatchesPosition: flags["show-matches-position"] ? true : undefined,
|
|
145
|
+
filter: flags.filter,
|
|
146
|
+
sort: flags.sort?.split(","),
|
|
147
|
+
distinct: flags.distinct,
|
|
148
|
+
facets: flags.facets?.split(","),
|
|
149
|
+
matchingStrategy: flags["matching-strategy"],
|
|
150
|
+
attributesToSearchOn: flags["attributes-to-search-on"]?.split(","),
|
|
151
|
+
rankingScoreThreshold: asNumber(flags["ranking-score-threshold"]),
|
|
152
|
+
locales: flags.locales?.split(","),
|
|
153
|
+
hybrid: asJson(flags.hybrid),
|
|
154
|
+
vector: flags.vector?.split(",").map(asNumber),
|
|
155
|
+
retrieveVectors: flags["retrieve-vectors"] ? true : undefined,
|
|
156
|
+
showRankingScore: flags["show-ranking-score"] ? true : undefined,
|
|
157
|
+
showRankingScoreDetails: flags["show-ranking-score-details"] ? true : undefined,
|
|
158
|
+
showPerformanceDetails: flags["show-performance-details"] ? true : undefined,
|
|
159
|
+
};
|
|
160
|
+
const params = readBodyWithFields(flags, fromFlags);
|
|
161
|
+
await this.output(await this.meilisearch.index(flags.index).search(undefined, params));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { BaseCommand } from "../lib/base-command.js";
|
|
3
|
+
import { readBodyWithFields } from "../lib/input.js";
|
|
4
|
+
import { asNumber } from "../lib/values.js";
|
|
5
|
+
export default class Similar extends BaseCommand {
|
|
6
|
+
static api = "meilisearch";
|
|
7
|
+
static routes = ["POST /indexes/{index_uid}/similar"];
|
|
8
|
+
static keyActions = ["search"];
|
|
9
|
+
static description = "Find the documents an index holds that are closest to one of its documents, named by --id and compared with --embedder.";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --id 143 --embedder default",
|
|
12
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --id 143 --embedder default --output json",
|
|
13
|
+
"<%= config.bin %> <%= command.id %> --project prod --index movies --id 143 --embedder default --filter 'genres = horror' --limit 5",
|
|
14
|
+
'<%= config.bin %> <%= command.id %> --project prod --index movies --data \'{"id":143,"embedder":"default","retrieveVectors":true}\'',
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
...BaseCommand.connectionFlags,
|
|
18
|
+
index: Flags.string({
|
|
19
|
+
required: true,
|
|
20
|
+
description: "The index to search in.",
|
|
21
|
+
helpValue: "<index>",
|
|
22
|
+
}),
|
|
23
|
+
id: Flags.string({
|
|
24
|
+
description: "The document to compare with, by its primary key value.",
|
|
25
|
+
helpValue: "<id>",
|
|
26
|
+
}),
|
|
27
|
+
embedder: Flags.string({
|
|
28
|
+
description: "The embedder the similarity is computed with, one of those the index settings configure.",
|
|
29
|
+
helpValue: "<embedder>",
|
|
30
|
+
}),
|
|
31
|
+
offset: Flags.integer({
|
|
32
|
+
description: "Number of documents to skip.",
|
|
33
|
+
helpValue: "<n>",
|
|
34
|
+
}),
|
|
35
|
+
limit: Flags.integer({
|
|
36
|
+
description: "Maximum number of documents to return, 20 by default.",
|
|
37
|
+
helpValue: "<n>",
|
|
38
|
+
}),
|
|
39
|
+
filter: Flags.string({
|
|
40
|
+
description: "Filter expression, for example `genres = horror`. Its array-of-arrays form goes through --data.",
|
|
41
|
+
helpValue: "<filter>",
|
|
42
|
+
}),
|
|
43
|
+
"attributes-to-retrieve": Flags.string({
|
|
44
|
+
description: "Document attributes to return, comma-separated. Defaults to the displayed ones.",
|
|
45
|
+
helpValue: "<fields>",
|
|
46
|
+
}),
|
|
47
|
+
"retrieve-vectors": Flags.boolean({
|
|
48
|
+
description: "Add _vectors to each hit, the embeddings of the document.",
|
|
49
|
+
}),
|
|
50
|
+
"show-ranking-score": Flags.boolean({
|
|
51
|
+
description: "Add _rankingScore to each hit, between 0.0 and 1.0.",
|
|
52
|
+
}),
|
|
53
|
+
"show-ranking-score-details": Flags.boolean({
|
|
54
|
+
description: "Add _rankingScoreDetails to each hit, the score of every ranking rule.",
|
|
55
|
+
}),
|
|
56
|
+
"show-performance-details": Flags.boolean({
|
|
57
|
+
description: "Add performanceDetails to the response, a timing breakdown of the query.",
|
|
58
|
+
}),
|
|
59
|
+
"ranking-score-threshold": Flags.string({
|
|
60
|
+
description: "Drop the hits whose ranking score is below this value, between 0.0 and 1.0.",
|
|
61
|
+
helpValue: "<number>",
|
|
62
|
+
}),
|
|
63
|
+
...BaseCommand.bodyInputFlags,
|
|
64
|
+
};
|
|
65
|
+
async run() {
|
|
66
|
+
const { flags } = await this.parse(Similar);
|
|
67
|
+
// Not typed against SearchSimilarDocumentsParams, unlike the flag object of `search`:
|
|
68
|
+
// the SDK type has no retrieveVectors, which SimilarQuery of the document declares.
|
|
69
|
+
const fromFlags = {
|
|
70
|
+
id: flags.id,
|
|
71
|
+
embedder: flags.embedder,
|
|
72
|
+
offset: flags.offset,
|
|
73
|
+
limit: flags.limit,
|
|
74
|
+
filter: flags.filter,
|
|
75
|
+
attributesToRetrieve: flags["attributes-to-retrieve"]?.split(","),
|
|
76
|
+
retrieveVectors: flags["retrieve-vectors"] ? true : undefined,
|
|
77
|
+
showRankingScore: flags["show-ranking-score"] ? true : undefined,
|
|
78
|
+
showRankingScoreDetails: flags["show-ranking-score-details"] ? true : undefined,
|
|
79
|
+
showPerformanceDetails: flags["show-performance-details"] ? true : undefined,
|
|
80
|
+
rankingScoreThreshold: asNumber(flags["ranking-score-threshold"]),
|
|
81
|
+
};
|
|
82
|
+
const params = readBodyWithFields(flags, fromFlags);
|
|
83
|
+
await this.output(await this.meilisearch.index(flags.index).searchSimilarDocuments(params));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=similar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"similar.js","sourceRoot":"","sources":["../../src/commands/similar.ts"],"names":[],"mappings":"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"}
|