{"id":29190644,"url":"https://github.com/ovid/search-typesense","last_synced_at":"2025-07-02T00:10:42.078Z","repository":{"id":56833970,"uuid":"350313257","full_name":"Ovid/Search-Typesense","owner":"Ovid","description":"Perl interface to the Typesense search engine.","archived":false,"fork":false,"pushed_at":"2021-03-31T07:29:28.000Z","size":166,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2023-08-20T22:30:35.590Z","etag":null,"topics":["perl","search","typesense"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ovid.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-22T11:12:43.000Z","updated_at":"2022-10-18T18:02:45.000Z","dependencies_parsed_at":"2022-09-08T07:42:12.310Z","dependency_job_id":null,"html_url":"https://github.com/Ovid/Search-Typesense","commit_stats":null,"previous_names":[],"tags_count":7,"template":null,"template_full_name":null,"purl":"pkg:github/Ovid/Search-Typesense","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ovid%2FSearch-Typesense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ovid%2FSearch-Typesense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ovid%2FSearch-Typesense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ovid%2FSearch-Typesense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ovid","download_url":"https://codeload.github.com/Ovid/Search-Typesense/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ovid%2FSearch-Typesense/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263052430,"owners_count":23406106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["perl","search","typesense"],"created_at":"2025-07-02T00:10:41.307Z","updated_at":"2025-07-02T00:10:42.055Z","avatar_url":"https://github.com/Ovid.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nSearch::Typesense - Perl interface to the Typesense search engine\n\n# VERSION\n\nversion 0.08\n\n# SYNOPSIS\n\n    my $typesense = Search::Typesense-\u003enew(\n        host      =\u003e $host,    # required\n        api_key   =\u003e $key,     # required\n        port      =\u003e $port,    # defaults to 8108\n        use_https =\u003e $bool,    # defaults to true\n    );\n    \n    my $results = $typesense-\u003esearch(\n        $collection_name,\n        { q =\u003e 'Search String' },\n    );\n    if ( $results-\u003e{found} ) {\n        foreach my $hit ( @{ $results-\u003e{hits} } ) {\n            ...;\n        }\n    }\n\n[Check here for a comparison to ElasticSearch and similar technologies](https://typesense.org/typesense-vs-algolia-vs-elasticsearch-vs-meilisearch/).\n\n# DESCRIPTION\n\n**ALPHA CODE**. The interface can and will change without warning.\n\nThis is an interface to the [Typesense](https://typesense.org/) search\nengine. Most methods will do one of three things:\n\n- Return results as defined in the Typesense documentation (listed per section)\n- Return nothing if Typesense returns a 404.\n- `croak` if Typesense returns an error.\n\n# CONSTRUCTOR\n\nThe constructor takes a list (or hashref) of key/value pairs.\n\n    my $typesense = Search::Typesense-\u003enew(\n        host      =\u003e $host,    # required\n        api_key   =\u003e $key,     # required\n        port      =\u003e $port,    # defaults to 8108\n        use_https =\u003e $bool,    # defaults to true\n    );\n\n## `api_key`\n\nThe api key to which will be sent as the `X-TYPESENSE-API-KEY` header.\n\n## `host`\n\nThe hostname to connect to.\n\n## `port`\n\nOptional port number to connect to. Defaults to 8108 if not supplied.\n\n## `use_https`\n\nOptional boolean. Whether or not to connect to Typesense over https. Default true.\n\n# METHODS\n\nFor CRUD operations on collections and documents, see the documentation for\n`collections` ([Search::Typesense::Collection](https://metacpan.org/pod/Search::Typesense::Collection)) and `documents`\n([Search::Typesense::Document](https://metacpan.org/pod/Search::Typesense::Document)).\n\n## `collections`\n\n    my $collections = $typesense-\u003ecollections;\n    my $collection  = $collections-\u003eget($collection_name);\n    my $results     = $collections-\u003esearch($collection_name, {q =\u003e 'London'});\n\nReturns an instance of [Search::Typesense::Collection](https://metacpan.org/pod/Search::Typesense::Collection) for managing Typesense collections.\n\n## `search`\n\n    my $results = $typesense-\u003esearch($collection_name, {q =\u003e 'London'});\n\nShorthand that delegated to `$typesense-\u003ecollections-\u003esearch(...)`.\n\nWe provide this on the top-level `$typesense` object because this is the\ncommon case.\n\n## `documents`\n\n    my $documents = $typesense-\u003edocuments;\n    my $document  = $documents-\u003edelete($collection_name, $document_id);\n\nReturns an instance of [Search::Typesense::Document](https://metacpan.org/pod/Search::Typesense::Document) for managing Typesense documents.\n\n## `assert_is_running`\n\n    $typesense-\u003eassert_is_running;\n\nThis does nothing if we can connect to Typesense. Otherwise, this method will\n`croak` with a message explaining the error.\n\n## `typesense_version`\n\n    my $version = $typesense-\u003etypesense_version;\n\nReturns an instance of [Search::Typesense::Version](https://metacpan.org/pod/Search::Typesense::Version).\n\nIf your version of Typesense is older than `0.8.0`, this method will return\nnothing.\n\n# INTERNATIONALIZATION (I18N)\n\nCurrently Typesense supports languages that use spaces as a word separator. In\nthe future, a new tokenizer will be added to support languages such as Chinese\nor Japanese. I do not know the timeframe for this.\n\n# AUTHOR\n\nCurtis \"Ovid\" Poe, `\u003covid at allaroundtheworld.fr\u003e`\n\n# BUGS\n\nPlease report any bugs or feature requests to\n`https://github.com/Ovid/Search-Typesense/issues`.  I will be notified, and\nthen you'll automatically be notified of progress on your bug as I make\nchanges.\n\n# SUPPORT\n\nYou can find documentation for this module with the perldoc command.\n\n    perldoc Search::Typesense\n\nYou can also look for information at:\n\n- Github Repo\n\n    [https://github.com/Ovid/Search-Typesense/](https://github.com/Ovid/Search-Typesense/)\n\n- Issue Tracker\n\n    [https://github.com/Ovid/Search-Typesense/issues](https://github.com/Ovid/Search-Typesense/issues)\n\n- Search CPAN\n\n    [https://metacpan.org/release/Search-Typesense](https://metacpan.org/release/Search-Typesense)\n\n# ACKNOWLEDGEMENTS\n\nThanks for Sebastian Reidel and Matt Trout for feedback.\n\n# LICENSE AND COPYRIGHT\n\nThis software is Copyright (c) 2021 by Curtis \"Ovid\" Poe.\n\nThis is free software, licensed under:\n\n    The Artistic License 2.0 (GPL Compatible)\n\n# AUTHOR\n\nCurtis \"Ovid\" Poe \u003covid@allaroundtheworld.fr\u003e\n\n# COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2021 by Curtis \"Ovid\" Poe.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovid%2Fsearch-typesense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovid%2Fsearch-typesense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovid%2Fsearch-typesense/lists"}