All Projects → haeungun → indexer4j

haeungun / indexer4j

Licence: Apache-2.0 license
Simple full text indexing and searching library for Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to indexer4j

Deepdatabase
A relational database engine using B+ tree indexing
Stars: ✭ 32 (-31.91%)
Mutual labels:  indexing, search-algorithm
Elasticsearch
The missing elasticsearch ORM for Laravel, Lumen and Native php applications
Stars: ✭ 375 (+697.87%)
Mutual labels:  search-engine, indexing
Redisearch
A query and indexing engine for Redis, providing secondary indexing, full-text search, and aggregations.
Stars: ✭ 3,393 (+7119.15%)
Mutual labels:  search-engine, inverted-index
Toshi
A full-text search engine in rust
Stars: ✭ 3,373 (+7076.6%)
Mutual labels:  search-engine, indexing
Algolia Webcrawler
Simple node worker that crawls sitemaps in order to keep an algolia index up-to-date
Stars: ✭ 40 (-14.89%)
Mutual labels:  search-engine, indexing
Intelligent Document Finder
Document Search Engine Tool
Stars: ✭ 45 (-4.26%)
Mutual labels:  search-engine, search-algorithm
Xapiand
Xapiand: A RESTful Search Engine
Stars: ✭ 347 (+638.3%)
Mutual labels:  search-engine, indexing
gosearch
a fast, real-time file searching program for linux
Stars: ✭ 68 (+44.68%)
Mutual labels:  search-engine, indexing
Flexsearch
Next-Generation full text search library for Browser and Node.js
Stars: ✭ 8,108 (+17151.06%)
Mutual labels:  search-engine, search-algorithm
Filemasta
A search application to explore, discover and share online files
Stars: ✭ 571 (+1114.89%)
Mutual labels:  search-engine, indexing
Opensearchserver
Open-source Enterprise Grade Search Engine Software
Stars: ✭ 408 (+768.09%)
Mutual labels:  search-engine, indexing
Alfanous
Alfanous is an Arabic search engine API provides the simple and advanced search in Quran , more features and many interfaces...
Stars: ✭ 209 (+344.68%)
Mutual labels:  search-engine, indexing
Examine
A .NET indexing and search engine powered by Lucene.Net
Stars: ✭ 208 (+342.55%)
Mutual labels:  search-engine, indexing
bulksearch
Lightweight and read-write optimized full text search library.
Stars: ✭ 108 (+129.79%)
Mutual labels:  search-engine, search-algorithm
code-compass
a contextual search engine for software packages built on import2vec embeddings (https://www.code-compass.com)
Stars: ✭ 33 (-29.79%)
Mutual labels:  search-engine
domhttpx
domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time.
Stars: ✭ 59 (+25.53%)
Mutual labels:  search-engine
module-search-mysql-legacy
No description or website provided.
Stars: ✭ 52 (+10.64%)
Mutual labels:  search-engine
imsearch
Framework to build your own reverse image search engine
Stars: ✭ 64 (+36.17%)
Mutual labels:  search-engine
nlp-lt
Natural Language Processing for Lithuanian language
Stars: ✭ 17 (-63.83%)
Mutual labels:  search-engine
BDExamenes
Base de datos de exámenes de la ETSIIT
Stars: ✭ 23 (-51.06%)
Mutual labels:  search-engine

Download Build Status codecov

indexer4j

Simple full text indexing and searching library for Java

Install

Gradle

repositories {
    jcenter()
}

dependencies {
   compile 'com.haeungun.indexer4j:indexer4j:<:the-latest-version>'
}

Maven

<dependency>
	<groupId>com.haeungun.indexer4j</groupId>
	<artifactId>indexer4j</artifactId>
	<version>the-latest-version</version>
	<type>pom</type>
</dependency>

Features

  • Support TF-IDF, BM25 score
  • Support Regex, N-gram tokenizer
  • Easy indexing with field annotation

TODO

  • Parrallel build and search
  • Support JDK 11 CI on travis CI (Jacoco does not support JDK11 yet)
  • Improve saving and loading features

Examples

@Document
public class ExampleDocument {

    @DocumentId
    private String id;

    @DocumentField
    private String title;

    @DocumentField
    private String contents;

    public ExampleDocument(String id, String title, String contents) {
        this.id = id;
        this.title = title;
        this.contents = contents;
    }

    public String getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public String getContents() {
        return contents;
    }
}

List<ExampleDocument> documents = Arrays.asList(
            new ExampleDocument("doc1", "First Document", "Lorem Lorem Lorem Lorem Lorem"),
            new ExampleDocument("doc2", "Third Document", "Lorem is hello java python"),
            new ExampleDocument("doc3", "Second Document", "Lorem ipsum dolor"),
            new ExampleDocument("doc4", "Forth Document", "Lorem"));

Indexer<ExampleDocument> index = new Indexer<>();
for (ExampleDocument document : documents) {
     index.add(document);
}

index.build();

List<SearchResult> result = index.search("First");
// output => [{docId="doc1", score="..."}]

List<SearchResult> result2 = index.search("Lorem ipsum");
// output = [{docId="doc3", score="..."}, {docId="doc1", score="..."}, ...] 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].