Skip to content

NicklasWallgren/solr-query-builder

Repository files navigation

Continuous Integration License Language grade: Java

Solr Query Builder

An Apache Solr Query Builder for writing Solr queries. It supports parts of The standard Query Parser. More features are to be added.

There are some examples that may be useful.

This library is heavily influenced by spring-data-solr, but adds additional functionality and Boolean Operators.

Documentation

See the project's Javadoc.

Installation

The artifact is available through Maven Central via Sonatype.

Maven

<dependency>
    <groupId>dev.nicklasw</groupId>
    <artifactId>solr-query-builder</artifactId>
    <version>0.10.0</version>
</dependency>

Gradle

implementation 'dev.nicklasw:solr-query-builder:0.10.0'

Changelog

Please see the changelog for a release history and indications on how to upgrade from one version to another.

Contributing

If you find any problems or have suggestions about this library, please submit an issue. Moreover, any pull request, code review and feedback are welcome.

Code Guide

We use GitHub Actions to make sure the codebase is consistent and continuously tested (gradle check). We try to keep comments at a maximum of 120 characters of length and code at 120.

General Usage

import static dev.nicklasw.solr.query.builder.Criteria.where;
import dev.nicklasw.solr.query.builder.parser.QueryParser;

final Criteria criteria = Criteria.where("title").expression("a title")
    .and(where("quantity").between(0, 100).and(where("episodeTitle").fuzzy("a title").boost(1.5f)))
    .or(where("title").regexp(".*title.*")).must()
    .connect()
    .or(where("title").expression("should not match").mustNot());
 
QueryParser.createQueryFor(criteria)  
>>> +(title:a title AND (quantity:[0 TO 100] AND episodeTitle:"a title"~^1.5) OR title:/.*title.*/) OR -title:should not match    

License

MIT

About

Apache Solr Query Builder

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages