npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@mikeie/fetch-es

v0.0.4

Published

search elasticsearch database using AND and suggester via elasticsearch node.js client

Downloads

8

Readme

fetch-es Node.js CICodeFactornpm version

search the elasticsearch database using AND and suggester via elasticsearch node.js client

The elasticsearch node (a petite VPS) currently hosts some corpora (united nations copurs, examples sentences from some bilingual dictionaries and the European-Parliament German-English corpus). The elasticsearch node is open to the public for read-only access.

Installation

npm i @mikeie/fetch-es

Usage

const fetch_es = require("@mikeie/fetch-es");

let query = "test测试";
fetch_es(query, index="uncor")
.then(res => console.log(res))
.catch(e => console.log(e.message))

will result in the following output

[
  '(g) Established policies and procedures for the testing of the plan, including <em>test</em> schedules, <em>test</em> objectives and <em>test</em> review procedures;→(g) 规定<em>测</em><em>试</em>计划
的政策和程序,包括<em>测</em><em>试</em>时间表、<em>测</em><em>试</em>目标及<em>测</em><em>试</em>审查
程序;',
  'The evaluation process includes an aptitude <em>test</em>, a physical <em>test</em> and an interview.→评价过程包括能力倾向<em>测</em><em>试</em>、体能<em>测</em><em>试</em>和面<em>试</em>。',
  'When mobile phones are to be tested the <em>test</em> should utilize at minimum an "air" or "ping" <em>test</em>, loop-back <em>test</em>, a screen and keypad <em>test</em>, and a battery <em>test</em> to determine to what extent they are suitable for reuse with or without repair, refurbishment or upgrading.→移动电话进行<em>测</em><em>试</em>时,该<em>测</em><em>试</em>应至少进行"空气"或"声脉冲"<em>测<
/em><em>试</em>、环回<em>测</em><em>试</em>、屏幕和键盘<em>测</em><em>试</em>,并进行电池<em>测</em><em>
试</em>以确定其在多大程度上不需修理、翻新或更新便适合再利用。',
  'These field tests should be completely documented, indicating the type of <em>test</em>, equipment utilized, <em>test</em> results and the name of the individual conducting the <em>test</em>.→这些实地<
em>测</em><em>试</em>应当全部作出文件记录,标明<em>测</em><em>试</em>类别所用设备,<em>测</em><em>试</
em>结果以及进行<em>测</em><em>试</em>者的姓名。',
  'When mobile phones are to be tested the <em>test</em> should utilize at minimum an "air" or "ping" <em>test</em>, loop-back <em>test</em>, a screen and keypad <em>test</em>, and a battery <em>test</em> to determine to what extent they are suitable for reuse with or without repair, refurbishment or upgrading.→移动电话进行<em>测</em><em>试</em>时,该<em>测</em><em>试</em>应至少进行"空气"或"声脉冲"<em>测<
/em><em>试</em>、环回<em>测</em><em>试</em>、屏幕和键盘<em>测</em><em>试</em>,并进行电池<em>测</em><em>
试</em>以确定其在多大程度上不需修理、翻新或更新便适合再利用。',
  '100 = Pressure <em>test</em> in kilo pacals (hydrostatic <em>test</em>);→对以公斤计算的货物进行拉力
<em>测</em><em>试</em>(静水压<em>测</em><em>试</em>);',
  'Acceptance <em>Test</em> (Production Lot testing)→验收<em>测</em><em>试</em>(生产批次<em>测</em><em
>试</em>)',
  'BIT: Built in <em>test</em> [<em>test</em> integré]→BIT: 内置<em>测</em><em>试</em>',
  '(ii) Modified annex H <em>test</em> cases, <em>test</em> scripts and <em>test</em> manuals have been developed and evaluated in order to prepare for functional CSEUR tests;→为了准备对合并的欧洲登记册系
统进行功能<em>测</em><em>试</em>,已对附件H的<em>测</em><em>试</em>用例、<em>测</em><em>试</em>脚本和<e
m>测</em><em>试</em>手册进行调整和评估;',
  '<em>Test</em> Objective→<em>测</em><em>试</em>物'
]

This package has three modules: search_es, nspell_text and suggest_es

search_es

search_es: searches a phrase or sentence in the elasticsearch node with a given index or indices.

nspell_text

nspell_text: checkes an English sentence and attemps to identify words that do not appear to be English. These words will prevent search_es from returning any result and will be replaced with other words (if some nearby words can be found) or removed (if none found).

suggest_es

suggest_es: if search_es does not return any matched result, suggest_es will attempt to suggest some closely matched result.

Since suggest_es takes much longer than search_es (especially for long sentences), the normal procedure to search is: apply nspell_text to the query phrase or sentence, use search_es first. If search_es does not return anything, use suggest_es.

Miscellany

search_es and suggest_es are defined as follows.

async function search_es(query = "", index = "") {...; if (!index) { index = ["yhdcd", "dictcor", "uncor"]; };...}

async function suggest_es(query = "", index = "") {...; if (!index) { index = ["yhdcd", "dictcor", "uncor"]; } ;...}

search_es and suggest_es return: [str]

The essencce of implementation:

const { Client } = require("@elastic/elasticsearch");
const client = new Client({
  node: ES_NODE,
  maxRetries: 8,
  requestTimeout: 60000,
  sniffOnStart: true,
});
let r0, res;
client.search({ index: index, body: body, }).then( r => { console.log(r); r0 = r; }).catch(e => {console.log(e);});

res = r0.body.hits.hits.map(el => el.highlight.text[0])

Refer to search_es.js, suggest_es.js and files in the test directory.