ESTCMD(1)
β¨ NAME β¨
estcmd β the command line interface of the core API. that's it, that's the whole name section, bestie π
π¦ SYNOPSIS π¦
estcmd create [-tr] [-apn|-acc] [-xs|-xl|-xh|-xh2|-xh3] [-sv|-si|-sa]
[-attr name type] db
estcmd put [-tr] [-cl] [-ws] [-apn|-acc] [-xs|-xl|-xh||-xh2|-xh3]
[-sv|-si|-sa] db [file]
estcmd out [-cl] [-pc enc] db expr
estcmd edit [-pc enc] db expr name [value]
estcmd get [-nl|-nb] [-pidx path] [-pc enc] db expr [attr]
estcmd list [-nl|-nb] [-lp] db
estcmd uriid [-nl|-nb] [-pidx path] [-pc enc] db expr
estcmd meta db [name [value]]
estcmd inform [-nl|-nb] db
estcmd optimize [-onp] [-ond] db
estcmd merge [-cl] db target
estcmd repair [-rst|-rsh] db
estcmd search [-nl|-nb] [-pidx path] [-ic enc]
[-vu|-va|-vf|-vs|-vh|-vx|-dd] [-sn wnum hnum anum] [-kn num] [-um] [-ec
rn] [-gs|-gf|-ga] [-cd] [-ni] [-sf|-sfr|-sfu|-sfi] [-hs] [-attr expr]
[-ord expr] [-max num] [-sk num] [-aux num] [-dis name] [-sim id] db
[phrase]
estcmd gather [-tr] [-cl] [-ws] [-no] [-fe|-ft|-fh|-fm] [-fx sufs cmd]
[-fz] [-fo] [-rm sufs] [-ic enc] [-il lang] [-bc] [-lt num] [-lf num]
[-pc enc] [-px name] [-aa name value] [-apn|-acc]
[-xs|-xl|-xh|-xh2|-xh3] [-sv|-si|-sa] [-ss name] [-sd] [-cm] [-cs num]
[-ncm] [-kn num] [-um] db [file|dir]
estcmd purge [-cl] [-no] [-fc] [-pc enc] [-attr expr] db [prefix]
estcmd extkeys [-no] [-fc] [-dfdb file] [-ncm] [-ni] [-kn num] [-um]
[-attr expr] db [prefix]
estcmd words [-nl|-nb] [-dfdb file] [-kw|-kt] db
estcmd draft [-ft|-fh|-fm] [-ic enc] [-il lang] [-bc] [-lt num] [-kn
num] [-um] [file]
estcmd break [-ic enc] [-il lang] [-apn|-acc] [-wt] [file]
estcmd iconv [-ic enc] [-il lang] [-oc enc] [file]
estcmd regex [-inv] [-repl str] expr [file]
estcmd scandir [-tf|-td] [-pa|-pu] [dir]
estcmd multi [-db db] [-nl|-nb] [-ic enc] [-gs|-gf|-ga] [-cd] [-ni]
[-sf|-sfr|-sfu|-sfi] [-hs] [-hu] [-attr expr] [-ord expr] [-max num]
[-sk num] [-aux num] [-dis name] [phrase]
estcmd randput [-ren|-rla|-reu|-ror|-rjp|-rch] [-cs num] db dnum
estcmd wicked db dnum
estcmd regression db
estcmd version
πΈ DESCRIPTION πΈ
okay so here's the tea: estcmd is literally an aggregation of sub commands, fr fr. the name of a sub command is specified by the first argument, and then every other argument gets parsed according to whichever sub command you picked. the argument db specifies the path of an index. π«Ά
π estcmd create π
estcmd create [-tr] [-apn|-acc] [-xs|-xl|-xh|-xh2|-xh3] [-sv|-si|-sa]
[-attr name type] db
Create an index. iconic behaviour honestly π
-trβ a brand new index gets created no matter what, even if one already exists. no questions asked.-apnβ N-gram analysis is performed against European text also.-accβ character category analysis is performed instead of N-gram analysis.-xsβ the index gets tuned to register less than 50000 documents.-xlβ the index gets tuned to register more than 300000 documents.-xhβ the index gets tuned to register more than 1000000 documents.-xh2β the index gets tuned to register more than 5000000 documents.-xh3β the index gets tuned to register more than 10000000 documents.-svβ scores are stored as void.-siβ scores are stored as 32-bit integer.-saβ scores are stored as-is and marked not to be tuned when search.-attrname type β specifies an attribute index and its data type. you can drop this option multiple times, it's not a one-and-done situation. π
π estcmd put π
estcmd put [-tr] [-cl] [-ws] [-apn|-acc] [-xs|-xl|-xh||-xh2|-xh3]
[-sv|-si|-sa] db [file]
Register a document of document draft to an index. yes bestie, we're adding stuff β¨
file specifies a target file. if it's omitted, the standard input is read.
-trβ a new index is created regardless if one exists.-clβ regions of a overwritten document are cleaned up.-wsβ scores are weighted statically with score weighting attribute.-apnβ N-gram analysis is performed against European text also.-accβ character category analysis is performed instead of N-gram analysis.-xsβ the index is tuned to register less than 50000 documents.-xlβ the index is tuned to register more than 300000 documents.-xhβ the index is tuned to register more than 1000000 documents.-xh2β the index is tuned to register more than 5000000 documents.-xh3β the index is tuned to register more than 10000000 documents.-svβ scores are stored as void.-siβ scores are stored as 32-bit integer.-saβ scores are stored as-is and marked not to be tuned when search.
π§ estcmd out π§
estcmd out [-cl] [-pc enc] db expr
Remove information of a document from an index. bye boo π
expr specifies the ID number, the URI, or the local path of a document.
-clβ regions of the document are cleaned up.-pcenc β specifies the encoding of file paths. by default, it'sISO-8859-1.
π estcmd edit π
estcmd edit [-pc enc] db expr name [value]
Edit an attribute of a document in an index. little glow-up moment β¨
expr specifies the ID number, the URI, or the local path of a document.
name specifies the name of an attribute.
value specifies the value of the attribute. if it's omitted, the attribute is removed.
-pcenc β specifies the encoding of the file path and the attribute value. by default, it'sISO-8859-1.
π estcmd get π
estcmd get [-nl|-nb] [-pidx path] [-pc enc] db expr [attr]
Output document draft of a document in an index. show me what you got π
expr specifies the ID number, the URI, or the local path of a document.
if attr is specified, only the value of the attribute is output.
-nlβ the index is opened without file locking.-nbβ file locking is performed without blocking.-pidxpath β specifies the path of a pseudo index. this option can be specified multiple times.-pcenc β specifies the encoding of file paths. by default, it'sISO-8859-1.
π estcmd list π
estcmd list [-nl|-nb] [-lp] db
Output a list of all document in an index. the whole roster, no cap π
-nlβ the index is opened without file locking.-nbβ file locking is performed without blocking.-lpβ local path equivalent to URL of"file://"is output.
β estcmd uriid β
estcmd uriid [-nl|-nb] [-pidx path] [-pc enc] db expr
Output the ID number of a document specified by URI. name to number, iconic π’
expr specifies the URI or the local path of a document.
-nlβ the index is opened without file locking.-nbβ file locking is performed without blocking.-pidxpath β specifies the path of a pseudo index. this option can be specified multiple times.-pcenc β specifies the encoding of file paths. by default, it'sISO-8859-1.
π¦ estcmd meta π¦
estcmd meta db [name [value]]
Handle meta data. the little details that matter π
name specifies the name of a piece of meta data. if it's omitted, a list of all names is output.
value specifies the value of the meta data to be recorded. if it's omitted, the current value is output. if it's an empty string, the meta data is removed.
π₯ estcmd inform π₯
estcmd inform [-nl|-nb] db
Output the number of documents and the number of unique words in an index. stats check β¨
-nlβ the index is opened without file locking.-nbβ file locking is performed without blocking.
π estcmd optimize π
estcmd optimize [-onp] [-ond] db
Optimize an index and clean up dispensable regions. self-care for your database π
-onpβ it is omitted to clean up dispensable regions.-ondβ it is omitted to optimize the database files.
πΈ estcmd merge πΈ
estcmd merge [-cl] db target
Merge another index. two become one, romantic honestly π«Ά
target specifies the path of another index.
-clβ regions of overwritten documents are cleaned up.
π©Ή estcmd repair π©Ή
estcmd repair [-rst|-rsh] db
Repair a broken index. we can fix her π
-rstβ strict consistency check is performed.-rshβ consistency check is omitted.
π OPTIONS π
π¦ estcmd search π¦
Okay bestie, here's the search vibe, in all its glory:
estcmd search [-nl|-nb] [-pidx path] [-ic enc]
[-vu|-va|-vf|-vs|-vh|-vx|-dd] [-sn wnum hnum anum] [-kn num] [-um] [-ec
rn] [-gs|-gf|-ga] [-cd] [-ni] [-sf|-sfr|-sfu|-sfi] [-hs] [-attr expr]
[-ord expr] [-max num] [-sk num] [-aux num] [-dis name] [-sim id] db
[phrase]
This one searches an index for documents, which is literally the whole point of having an index, right? π
phrase is the thing you're searching for β it specifies the search phrase. That's it, that's the tea.
-nlβ the index gets opened with no file locking at all. Living dangerously, no cap.-nbβ file locking does happen, but it won't block while doing it.-pidxpath β tells it the path of a pseudo index. You can drop this option as many times as you want, it stacks. β¨-icenc β the input encoding. Default isUTF-8, periodt.-vuβ outputs TSV of ID number and URI. Clean, minimal, iconic.-vaβ outputs multipart format including attributes.-vfβ outputs multipart format including the document draft.-vsβ multipart format with attributes and snippets. The full meal. π-vhβ human readable format with attributes and snippets, for when you want to actually read it with your eyeballs.-vxβ XML including attributes and snippets.-ddβ document draft data gets dumped and saved into separated files.-snwnum hnum anum β sets three widths, in order: the whole width of the snippet, the width of strings picked up from the beginning of the text, and the width of strings picked up around each highlighted word.-knnum β the number of keywords to be extracted. By default? Keyword extraction just does not happen, so you gotta ask for it.-umβ morphological analyzers get used for keyword extraction. Fancy. π§-ecrn β sets the lower limit of similarity eclipse.-gsβ every single key of N-gram gets checked. By default it's done alternately instead.-gfβ keys of N-gram get checked every three.-gaβ keys of N-gram get checked every four.-cdβ checks whether documents match the search phrase definitely. Certainty check, slay.-niβ omits TF-IDF tuning.-sfβ the phrase is treated as a simplified form.-sfrβ the phrase is treated as a rough form.-sfuβ the phrase is treated as a union form.-sfiβ the phrase is treated as an intersection form.-hsβ score information gets output as an attribute.-attrexpr β specifies an attribute search condition. Stack it as many times as you like. π-ordexpr β the order expression. By default it's descending by score.-maxnum β the maximum number of shown documents. A negative number means unlimited. Default is10.-sknum β how many documents get skipped. Default is0.-auxnum β permission to adopt the result of the auxiliary index. If it's not more than0, the auxiliary index is not used at all. Default is32.-disname β the name of the distinct attribute.-simid β the ID number of the seed document for a similarity search. π
πΈ estcmd gather πΈ
The collector. It goes out into your filesystem and brings back documents. π«Ά
estcmd gather [-tr] [-cl] [-ws] [-no] [-fe|-ft|-fh|-fm] [-fx sufs cmd]
[-fz] [-fo] [-rm sufs] [-ic enc] [-il lang] [-bc] [-lt num] [-lf num]
[-pc enc] [-px name] [-aa name value] [-apn|-acc]
[-xs|-xl|-xh|-xh2|-xh3] [-sv|-si|-sa] [-ss name] [-sd] [-cm] [-cs num]
[-ncm] [-kn num] [-um] db [file|dir]
This one scans the local file system and registers documents into an index. It's giving very main character energy. β¨
So about that third argument:
- If the third argument is the name of a file, then a list of paths of target documents gets read from it. And if it's
-, then standard input is what you're feeding it. - If the third argument is the name of a directory, then all files under that directory are treated as target documents. Everything. The whole folder. Obsessed.
Now the options:
-trβ a new index is created regardless of whether one already exists. Fresh start, we love that for you.-clβ regions of overwritten documents get cleaned up.-wsβ scores get weighted statically using the score weighting attribute.-noβ operations are printed but not actually executed. A dress rehearsal, bestie. Nothing real happens.-feβ target files are treated as document draft. By default the format is detected by the suffix of each document.-ftβ target files are treated as plain text.-fhβ target files are treated as HTML.-fmβ target files are treated as MIME.-fxsufs cmd β target files with the specified suffixes get processed by the specified outer command. A"*"matches any file. Now listen closely, this part is important:- If the command is leaded by
"T@", the output of the command is treated as plain text. - If the command is leaded by
"H@", the output is treated as HTML. - If the command is leaded by
"M@", the output is treated as MIME. - Else, the output is treated as document draft.
- You can specify this option multiple times. π
- If the command is leaded by
-fzβ documents that don't correspond to the condition of-fxget ignored.-foβ target files are not read. Sounds weird but it's genuinely useful for efficient processing of the outer command. iykyk.-rmsufs β target files with the specified suffixes get removed. A"*"matches any file. Multiple times, stackable. π-icenc β the input encoding. By default it's detected automatically.-illang β the preferred input language. By default, English is preferred.-bcβ binary files get detected and ignored.-ltnum β the text size limitation, in kilo bytes. Default is128KB. If it's negative, the size is unlimited.-lfnum β the file size limitation, in mega bytes. Default is32MB. If it's negative, the size is unlimited.-pcenc β the encoding of file paths. Default isISO-8859-1.-pxname β the name of an attribute read from the list of paths. Since that list can be in TSV format: the first field is treated as the path of a target document, and the second field plus the ones after it are definitions of attribute values. So-pxnames each of the values of the second field and the followers. You can specify it multiple times. β¨-aaname value β the name and the value of an additional attribute. Stackable, multiple times. π-apnβ N-gram analysis is performed against European text also.-accβ character category analysis is performed instead of N-gram analysis.-xsβ the index is tuned to register less than50000documents.-xlβ the index is tuned to register more than300000documents.-xhβ the index is tuned to register more than1000000documents.-xh2β the index is tuned to register more than5000000documents.-xh3β the index is tuned to register more than10000000documents. Absolute unit. π-svβ scores are stored as void.-siβ scores are stored as 32-bit integer.-saβ scores are stored as-is and marked not to be tuned when searching.-ssname β the name of an attribute for the substitute score.-sdβ the modification date of each file gets recorded as an attribute.-cmβ documents whose modification date hasn't changed get ignored. Efficiency queen. π-csnum β the size of cache memory, in mega bytes. Default is64MB.-ncmβ checking availability of the virtual memory is omitted.-knnum β the number of keywords to be extracted. By default, keyword extraction is not performed.-umβ morphological analyzers get used for keyword extraction. π§
π estcmd purge π
estcmd purge [-cl] [-no] [-fc] [-pc enc] [-attr expr] db [prefix]
Purges information of documents which do not exist on the file system. Basically it's the ghostbuster for your index. π»
If prefix is specified, then only documents whose URIs begin with it get touched. And plot twist: it can be specified by the local path of a directory.
-clβ regions of the deleted documents get cleaned up.-noβ operations are printed but not actually executed. Look, don't touch.-fcβ information of all target documents gets deleted. All of them. No survivors. π-pcenc β the encoding of file paths. Default isISO-8859-1.-attrexpr β an attribute search condition. You can specify this multiple times. π
β estcmd extkeys β
estcmd extkeys [-no] [-fc] [-dfdb file] [-ncm] [-ni] [-kn num] [-um]
[-attr expr] db [prefix]
Creates a database of keywords extracted from documents. Keyword girlboss behavior, honestly. π
If prefix is specified, only documents whose URIs begin with it are in the mix.
-noβ operations are printed but not actually executed. A little preview moment.-fcβ all target documents get processed, whichever they have existing records or not. No skipping.-dfdbfile β specifies another database of document frequency. By default, document frequency is calculated dynamically according to the index.-ncmβ checking availability of the virtual memory is omitted.-niβ omits TF-IDF tuning.-knnum β the number of keywords to be extracted. Default here is32.-umβ morphological analyzers get used for keyword extraction. β¨-attrexpr β an attribute search condition. Stackable, multiple times. π«Άestcmd words [-nl|-nb] [-dfdb file] [-kw|-kt] dbβ bestie this one spits out a list of every single unique word plus each record size, and that size is what gets treated as the document frequency. π- If
-nlis specified, the index is opened without file locking (living dangerously, no cap). - If
-nbis specified, file locking happens but without blocking β so it doesn't sit there waiting like an ex who left you on read. π -dfdbnames an outer database where the result gets stored. By default the result goes to standard output as TSV. And listen β if that outer database already exists, the value of each record is incremented. β¨- If
-kwis specified, keywords and the numbers of their corresponding documents get output. - If
-ktis specified, keywords and their related terms get output.
- If
estcmd draft [-ft|-fh|-fm] [-ic enc] [-il lang] [-bc] [-lt num] [-kn num] [-um] [file]β for test and debug. π§ͺestcmd break [-ic enc] [-il lang] [-apn|-acc] [-wt] [file]β for test and debug. π§ͺestcmd iconv [-ic enc] [-il lang] [-oc enc] [file]β for test and debug. π§ͺestcmd regex [-inv] [-repl str] expr [file]β for test and debug. π§ͺestcmd scandir [-tf|-td] [-pa|-pu] [dir]β for test and debug. π§ͺestcmd multi [-db db] [-nl|-nb] [-ic enc] [-gs|-gf|-ga] [-cd] [-ni] [-sf|-sfr|-sfu|-sfi] [-hs] [-hu] [-attr expr] [-ord expr] [-max num] [-sk num] [-aux num] [-dis name] [phrase]β for test and debug. π§ͺestcmd randput [-ren|-rla|-reu|-ror|-rjp|-rch] [-cs num] db dnumβ for test and debug. π§ͺestcmd wicked db dnumβ for test and debug. π§ͺestcmd regression dbβ for test and debug. π§ͺestcmd versionβ shows the version information. π
Okay so here's the β¨ general lore β¨ that applies across the board:
Every single sub command returns 0 if the operation is a success, and otherwise returns 1. Slay, simple.
But as for put, out, gather, purge, randput, wicked, and regression β those ones finish up by closing the database whenever they catch signal 1 (SIGHUP), 2 (SIGINT), 3 (SIGQUIT), 13 (SIGPIPE), or 15 (SIGTERM). So they're polite about it, they tidy up before they go. π«Ά
The data type of the attribute indexes you specify with the -attr option of the create sub command should be "seq" for sequencial type, "str" for string type, or "num" for number type. Pick your fighter. π
Each pseudo index you specify with the -pidx option of the search sub command and so on is literally just a directory containing files of document draft. And if you search a main index with pseudo indexes, a meta search of the main index and the pseudo indexes gets performed. That's the vibe. π¦
The encoding name you pass to the -ic option should be a name registered to IETF, like UTF-8, ISO-8859-1, and so on. The language name you pass to the -il option should be one of "en" (English), "ja" (Japanese), "zh" (Chinese), or "ko" (Korean). π
The outer command specified by the -fx option of gather receives the path of the target document as its first argument and the path for output as its second argument. And the original path of the target document is handed over as the value of the environment variable ESTORIGFILE. π
β οΈ Okay important heads up bestie: note that similarity search is very slow, by default. Like, tragically slow. π To improve the performance of similarity search, running estcmd extkeys beforehand is strongly recommended. Do it. Trust. π
π SEE ALSO π
Please see http://hyperestraier.sourceforge.net/uguide-en.html for detail. It's giving β¨ required reading β¨ fr fr. π
And that's the whole page, bestie β you ate that. π
This lil' masterpiece is ESTCMD(1), from the Man Page era, dated 2007-03-06. Iconic behavior, honestly. Go forth and index. ππ
π¦ where this page comes from
- fedora 43: hyperestraier 1.4.13-69.fc43 Β· LGPL-2.1-or-later AND BSD-3-Clause
- fedora 43: hyperestraier 1.4.13-69.fc43 Β· LGPL-2.1-or-later AND BSD-3-Clause
- fedora 44: hyperestraier 1.4.13-73.fc44 Β· LGPL-2.1-or-later AND BSD-3-Clause
- fedora 44: hyperestraier 1.4.13-73.fc44 Β· LGPL-2.1-or-later AND BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms