Olivier LS unveiled PHP-fts on Hacker News this week, a full-text search engine written entirely in pure PHP without requiring any extensions — a rarity in an era dominated by complex libraries.
Tool: PHP-fts | Language: Pure PHP | Requirements: No extensions | HN Points: 26
What It Is and How It Works
PHP-fts is an open-source library that enables full-text search capabilities directly within PHP scripts, indexing and querying text data without external dependencies. It uses a simple inverted index mechanism to store word positions, allowing for efficient searches across documents or databases. According to the GitHub repository, this design keeps the footprint light, with the entire codebase under 1,000 lines of code, making it ideal for environments where extensions like PCRE or database drivers might be restricted.
Benchmarks and Specs
Performance tests in the HN discussion show PHP-fts indexing a 1MB text file in under 5 seconds on a standard laptop, with query times averaging 0.1-0.5 seconds for common searches. Compared to extension-based tools, it consumes less than 50MB of memory during operations, versus 200MB for similar features in MySQL full-text search. A key spec is its compatibility with PHP 7.4 and above, requiring no additional server configuration.
| Feature | PHP-fts | MySQL Full-Text | Elasticsearch |
|---|---|---|---|
| Memory Use | <50MB | ~200MB | >1GB |
| Indexing Speed | 5s for 1MB | 10s for 1MB | 2s for 1MB |
| Query Speed | 0.1-0.5s | 0.2-1s | 0.05-0.2s |
| Dependencies | None | Database ext. | Java runtime |
Bottom line: PHP-fts delivers solid search speeds for small-to-medium datasets while minimizing resource demands, outperforming heavier alternatives in low-dependency scenarios.
How to Try It
Getting started with PHP-fts involves cloning the repository and integrating it into your PHP project, which takes under 10 minutes for basic setup. Run git clone https://github.com/olivier-ls/php-fts in your terminal, then include the library in your script with a simple require statement. For a quick test, use the provided example script to index a sample dataset and perform queries, as detailed in the README.
"Full Setup Steps"
git clone https://github.com/olivier-ls/php-fts
php example.php
Pros and Cons
One major pro is its portability; PHP-fts runs on any PHP setup without extensions, reducing deployment friction for AI developers building web apps on shared hosting. It also supports basic relevance scoring, improving search accuracy for text-heavy AI applications like chatbots. On the downside, it lacks advanced features like fuzzy matching or distributed scaling, which could limit its use for large-scale datasets.
- Handles up to 10,000 documents efficiently, per HN comments
- Reduces setup time by 80% compared to installing Elasticsearch, based on user reports
- No built-in support for multi-language queries, potentially frustrating NLP projects
Alternatives and Comparisons
PHP-fts stands out against heavier options like Elasticsearch or Apache Solr, which demand significant resources and setup. For instance, Elasticsearch requires a Java environment and at least 1GB of RAM, while Solr needs a full server configuration. In contrast, PHP-fts offers a no-frills alternative for simple needs.
| Feature | PHP-fts | Elasticsearch | Apache Solr |
|---|---|---|---|
| Ease of Setup | Very easy | Complex | Moderate |
| Scalability | Low | High | High |
| Cost | Free | Free (but ops-heavy) | Free |
| AI Integration | Good for basic NLP | Excellent for large models | Solid for queries |
Early testers on Hacker News noted PHP-fts as a "quick win" for prototyping AI-driven search features, though it trails Elasticsearch in handling complex queries.
Who Should Use This
AI practitioners working on lightweight web applications, such as those building sentiment analysis tools or document retrieval systems in PHP, should consider PHP-fts for its simplicity. It's particularly useful for beginners or teams with limited server access, but developers handling big data or requiring advanced NLP features like semantic search should skip it in favor of more robust tools. For example, if your AI project involves processing under 100,000 records, this tool's low overhead makes it a practical choice.
PHP-fts isn't ideal for research teams needing enterprise-level performance, as its basic indexing might bottleneck in high-volume scenarios. Instead, opt for it if you're an indie developer integrating search into an AI prototype without bloating your stack.
Bottom Line and Verdict
In summary, PHP-fts provides a straightforward, resource-efficient way to add full-text search to AI projects, especially where dependencies are a concern, but its limitations in scale mean it's best for niche use cases. For AI developers, this tool could streamline development cycles by 20-30%, based on community feedback, making it a solid pick for rapid prototyping rather than production systems.

Top comments (0)