NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3922 most downloaded on PyPI
A Lucene query parser generating ElasticSearch queries and more !
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 6 weeks to 1.9 years
Most releases are documented
notes for 22 of 25 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
25 releases · first in 2016
PyPI distribution procedure for devs
parsetab.py file
PyPI distribution procedure for devs
Requirements for build and twine for devs
Support for Python 3.11, 3.12 and 3.13 ( #97 and #111 , thanks to @cclauss and @alexgarel )
Full Changelog: 0.13.0...0.14.0
One column per quarter.
Add support for unbounded ranges ( #91 , thanks to @JSCU-CNI )
Add support for unbounded ranges
Support is added for open ranges, i.e. inequality operators in front of a term. In tree form, the < is named To, and > is named From.
Additionally, a TreeTransformer is also added, to convert these open ranges to more traditional Range objects.
To properly support escaping, some adjustments were made to how escaping sequences work. After careful evaluation of how Apache Lucene handles escape sequences, it appears that random characters can be escaped, even if they result in unknown escape sequences: the escaped character is always yielded. This makes support for operations such as <=foo a lot less complicated.
There is no support in the ElasticsearchQueryBuilder.
Precedence for unknown operation and boost ( #89 , thanks to @JSCU-CNI )
Boost can be implicit ; by default, the boost factor is 1
Add support for Lucene and Elasticsearch Boolean operations (#71, thanks to @linefeedse):
Set E element as ElasticsearchQueryBuilder's attributes (#75, thanks to @qcoumes):
This allows to override elements such as EMust, EWord, ...,
without the need of overriding ElasticsearchQueryBuilder's methods.
Explicit support for Python 3.9 and Python 3.10 (#76)
Add a thread safe parse function (#82)
Run tests with github actions
Update all libraries for dev:
completely modified the naming module and auto_name function, as it was not practical as is.
completely modified the naming module and auto_name function, as it was not practical as is.
added tools to build visual explanations about why a request matches a results (leveraging elasticsearch named queries.
added a visitor and transformer that tracks path to element while visiting the tree.
fixed the handling of names when transforming luqum tree to elasticsearch queries and added integration tests.
…and utils.LuceneTreeTransformer are warned as deprecated (but still works).
support for parsing Regular expressions like /foo/ (no transformation to Elasticsearch DSL yet)
basic support for head and tail of expressions (the separators) and for their position (pos and size) in original text
added auto_head_tail util (use it if you build your tree programatically and want a printable representation)
tree item now support a clone_item method and a setter for children. This should help with making transformation pattern easier.
New visitor.TreeVisitor and visitor.TreeTransformer classes to help in processing trees utils.LuceneTreeVisitor, utils.LuceneTreeVisitorV2 and utils.LuceneTreeTransformer are warned as deprecated (but still works).
support for python 3.8 added, support for python 3.4 and 3.5 dropped
better printing of Proximity and Fuzzy items (preserve implicit nature of degree)
raise IllegalCharacterError on illegal character found instead of printing and skipping
renamed ParseError to ParseSyntaxError, and kept ParseError as a parent exception
Range item were not checking for bounds type on equality
Boost item were not checking for force on equality
Reorganize tests
support for elasticsearch 7
support for elasticsearch 7
added Apache 2 license, while maintaining LGPLv3+
added Apache 2 license, while maintaining LGPLv3+
support for multi_match query in ElasticsearchQueryBuilder.
support for multi_match query in ElasticsearchQueryBuilder.
SchemaAnalyzer, should count non text fields as not_analyzed
ElasticsearchQueryBuilder's field_options parameter can accept match_type instead of type to change request type. This is now the prefered way over type which may more easily conflict with request parameters.
handling sub fields (aka multi-fields__)
handling sub fields (aka multi-fields)
fixed bug on equality, having more children in one tree than in the other, was not triggering inequality if first nodes were the same !
handling special characters escaping_
handling special characters escaping
added iter_wildcards and split_wildcards to have a finer grained search of wildcard in terms
fixed bug in luqum.utils.LuceneTreeTransformer when removing node
fixed bug in handling approx operator on multiple words in luqum.elasticsearch.visitor.ElasticsearchQueryBuilder
test coverage now check branch
On ElasticSearch query transformation, Luqum was interpreting wildcards in Phrases where as it should not
On ElasticSearch query transformation, Luqum was interpreting wildcards in Phrases where as it should not
adding the zero_terms_query to match_phrase was a mistake (introduced in 0.7.0).
adding the zero_terms_query to match_phrase was a mistake (introduced in 0.7.0).
0.7.0 introduced the match query for queries with single words on analyzed fields, whereas before it was using match_phrase. Although this is more coherent, this may cause difficulties on edge cases as this may leads to results different from previous release.
This behaviour might be disabled using a new match_word_as_phrase parameter to luqum.elasticsearch.visitor.ElasticsearchQueryBuilder. Note that this parameter maybe removed in future release. (the field_options might be used instead on a per field basis).
version introduced because of a bad upload on pypi (Restructured description error)
version introduced because of a bad upload on pypi (Restructured description error)
Nothing published for this version
Manage object fields in elasicsearch transformation
Manage object fields in elasicsearch transformation
minor fix, getting better error message when parsing error is at the end of content
better handling of nested fields may lead to shorter requests
A class to transform smartly replace implicit operations with explicit one (*OR* or *AND*)
A class to transform smartly replace implicit operations with explicit one (OR or AND)
handling of fields names with numbers followed by a number (better handling of time in expressions)
now using ply 3.10
better recursion in the tree transformer util (API Change)
better recursion in the tree transformer util (API Change)
handling of empty phrases for elasticsearch query builder
Better handling of the implicit operator on printing
a minor release
Better handling of the implicit operator on printing
Operations are now supporting multiple operands (instead of only two). This mitigate the construction of very deep trees.
Operations are now supporting multiple operands (instead of only two). This mitigate the construction of very deep trees.
fixes and improvement of documentation
The Lucene query checker now checks nested fields before transformation to prevent bad usage
The Lucene query checker now checks nested fields before transformation to prevent bad usage
Support for nested fields in Elastic Search queries
Support for nested fields in Elastic Search queries
improved performances by adding a cache to the tree visitor utility
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →