{"id":17470781,"url":"https://github.com/waitingsong/paradedb","last_synced_at":"2026-02-12T22:33:22.115Z","repository":{"id":257827950,"uuid":"871212705","full_name":"waitingsong/paradedb","owner":"waitingsong","description":"ParadeDb JavaScript Client Library","archived":false,"fork":false,"pushed_at":"2025-02-26T17:23:49.000Z","size":277,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T11:16:51.258Z","etag":null,"topics":["analytics","bm25","elasticsearch","fts","full-text-search","hnsw","hybrid-search","mpp","paradedb","pgvector","postgres","similarity-search"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waitingsong.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-11T13:46:37.000Z","updated_at":"2025-02-21T05:09:15.000Z","dependencies_parsed_at":"2024-11-27T11:19:45.398Z","dependency_job_id":"3709ee8c-13f9-4c8c-a1fb-725c8d1b31d0","html_url":"https://github.com/waitingsong/paradedb","commit_stats":null,"previous_names":["waitingsong/paradedb"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/waitingsong/paradedb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fparadedb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fparadedb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fparadedb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fparadedb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waitingsong","download_url":"https://codeload.github.com/waitingsong/paradedb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fparadedb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29383974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T22:07:52.078Z","status":"ssl_error","status_checked_at":"2026-02-12T22:07:49.026Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","bm25","elasticsearch","fts","full-text-search","hnsw","hybrid-search","mpp","paradedb","pgvector","postgres","similarity-search"],"created_at":"2024-10-18T16:10:09.239Z","updated_at":"2026-02-12T22:33:22.100Z","avatar_url":"https://github.com/waitingsong.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [ParadeDB] JavaScript Client Library\n\n[![GitHub tag](https://img.shields.io/github/tag/waitingsong/paradedb.svg)]()\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![](https://img.shields.io/badge/lang-TypeScript-blue.svg)]()\n[![ci](https://github.com/waitingsong/paradedb/actions/workflows/nodejs.yml/badge.svg\n)](https://github.com/waitingsong/paradedb/actions)\n[![codecov](https://codecov.io/gh/waitingsong/paradedb/graph/badge.svg?token=oDHz5mmy7x)](https://codecov.io/gh/waitingsong/paradedb)\n\n[ParadeDB] is an Elasticsearch alternative built on Postgres.\nWe're modernizing the features of Elasticsearch's product suite, \nstarting with real-time search and analytics.\n\nTest successfully with\n- [Paradedb] v0.11\n- [Paradedb] v0.12\n- [Paradedb] v0.13\n- [Paradedb] v0.14\n- [Paradedb] v0.15 ([Query Builder] not supported)\n\n\n## Packages\n\n| Package          | Version                |\n| ---------------- | ---------------------- |\n| [paradedb-js]    | [![main-svg]][main-ch] |\n| [@mwcp/paradedb] | [![cli-svg]][cli-ch]   |\n\n\n## Installation\n\n```sh\nnpm i paradedb \n// OR\nnpm i @mwcp/paradedb\n```\n\n## Usage\n\n### Index\n\n- Initialize ParadeDb instance\n  ```ts\n  import { ParadeDb, type DbConnectionConfig } from 'paradedb'\n\n  const connection: DbConnectionConfig  = {\n    host: process.env['PARADEDB_HOST'] ? process.env['PARADEDB_HOST'] : 'localhost',\n    port: process.env['PARADEDB_PORT'] ? +process.env['PARADEDB_PORT'] : 5432,\n    database: process.env['PARADEDB_DB'] ? process.env['PARADEDB_DB'] : 'postgres',\n    user: process.env['PARADEDB_USER'] ? process.env['PARADEDB_USER'] : 'postgres',\n    password: process.env['PARADEDB_PASSWORD'] ? process.env['PARADEDB_PASSWORD'] : 'password',\n  }\n\n  const pdb = new ParadeDb('master', { connection })\n  ```\n\n- [Create an Index]\n  ```ts\n  const options: CreateBm25Options = {\n    indexName: 'search_idx',\n    tableName: 'mock_items',\n    keyField: 'id',\n  }\n  await pdb.index.createBm25(options)\n  ```\n  [More examples](https://github.com/waitingsong/paradedb/tree/main/packages/paradedb/test/lib/index-manager)\n\n- [Drop an Index]\n  ```ts\n  const options: DropBm25Options = {\n    indexName: 'search_idx',\n  }\n  await pdb.index.dropBm25(options)\n  ```\n\n- [Index Schema]\n  ```ts\n  const rows: IndexSchemaDto[] = await idx.schema({ indexName: 'search_idx' })\n  assert(rows.length, 'Not found')\n  ```\n\n- [Index Size]\n  ```ts\n  const size: bigint = await idx.size({ indexName: 'search_idx' })\n  // 0n means not found\n  ```\n\n### Full Text Search\n\n- [Syntax of knex query builder]\n- [FTS Examples]\n\nBasic Usage:\n```ts\nconst pdb = new ParadeDb('test', dbConfig)\nconst rows = await pdb.search\u003cMockItemsDo\u003e('mock_items')\n  .whereRaw(`description @@@ :k1`, { k1: 'keyboard' })\n  .orderBy('id', 'desc')\n  .limit(limit)\n```\n\n## Midway.js Component\n\n### Configuration\n\nUpdate project `src/configuration.ts`\n```ts\nimport { Configuration } from '@midwayjs/core'\nimport * as pdb from '@mwcp/paradedb'\n\n@Configuration({\n  imports: [ pdb ],\n  importConfigs: [join(__dirname, 'config')],\n})\nexport class ContainerConfiguration implements ILifeCycle {\n}\n```\n\n## Usage\n\n[Example](https://github.com/waitingsong/paradedb/blob/main/packages/mwcp-paradedb/test/fixtures/base-app/src/paradedb-manager.ts#L29)\n\n\n\n## License\n[MIT](LICENSE)\n\n\n### Languages\n- [English](README.md)\n- [中文](README.zh-CN.md)\n\n\u003cbr\u003e\n\n[paradedb-js]: https://github.com/waitingsong/paradedb/tree/main/packages/paradedb\n[main-svg]: https://img.shields.io/npm/v/paradedb.svg?maxAge=300\n[main-ch]: https://github.com/waitingsong/paradedb/tree/main/packages/paradedb/CHANGELOG.md\n\n\n[@mwcp/paradedb]: https://github.com/waitingsong/paradedb/tree/main/packages/mwcp-paradedb\n[cli-svg]: https://img.shields.io/npm/v/@mwcp/paradedb.svg?maxAge=300\n[cli-ch]: https://github.com/waitingsong/paradedb/tree/main/packages/mwcp-paradedb/CHANGELOG.md\n\n\n[Midway.js]: https://midwayjs.org/\n[ParadeDB]: https://www.paradedb.com/\n\n[Create an Index]: https://docs.paradedb.com/documentation/indexing/create_index\n[Drop an Index]: https://docs.paradedb.com/documentation/indexing/delete_index\n[Index Schema]: https://docs.paradedb.com/documentation/indexing/inspect_index#index-schema\n[Index Size]: https://docs.paradedb.com/documentation/indexing/inspect_index#index-size\n\n[Syntax of knex query builder]: https://knexjs.org/guide/query-builder.html\n[FTS Examples]: https://github.com/waitingsong/paradedb/tree/main/packages/paradedb/test/lib/fts\n[Query Builder]: https://docs.paradedb.com/documentation/advanced/overview\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitingsong%2Fparadedb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaitingsong%2Fparadedb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitingsong%2Fparadedb/lists"}