Apache Lucene open-source search software
Go to file
Adrien Grand cf27af1416 Speed up top-k retrieval on filtered conjunctions. (#13994)
A while back we added an optimized bulk scorer that implements block-max AND,
this yielded a good speedup on nightly benchmarks, see annotation `FP` at
https://benchmarks.mikemccandless.com/AndHighHigh.html. With this PR, filtered
conjunctions now also run through this optimized bulk scorer by doing two
things:
 - It flattens inner conjunctions. This makes queries initially written as
   something like `+(+term1 +term2) #filter` rewritten to
   `+term1 +term2 #filter`.
 - It evaluates queries that have a mix of MUST and FILTER clauses evaluated
   through `BlockMaxConjunctionBulkScorer` by treating FILTER clauses as
   scoring clauses that produce a score of 0.
2024-11-18 08:51:54 +01:00
.github
build-tools
dev-docs
dev-tools Align TestGenerateBwcIndices.java with AddBackcompatindices.py (#13911) 2024-10-15 13:40:43 +02:00
gradle Allow easier verification of the Panama Vectorization provider with newer Java versions (#13986) 2024-11-14 09:02:48 +00:00
help
lucene Speed up top-k retrieval on filtered conjunctions. (#13994) 2024-11-18 08:51:54 +01:00
.asf.yaml
.dir-locals.el
.git-blame-ignore-revs
.gitattributes
.gitignore
.hgignore
.lift.toml
CONTRIBUTING.md
LICENSE.txt
NOTICE.txt
README.md
build.gradle
gradlew
gradlew.bat
settings.gradle
versions.lock
versions.toml

README.md

Apache Lucene

Lucene Logo

Apache Lucene is a high-performance, full-featured text search engine library written in Java.

Build Status Revved up by Develocity

Online Documentation

This README file only contains basic setup instructions. For more comprehensive documentation, visit:

Building

Basic steps:

  1. Install OpenJDK 21.
  2. Clone Lucene's git repository (or download the source distribution).
  3. Run gradle launcher script (gradlew).

We'll assume that you know how to get and set up the JDK - if you don't, then we suggest starting at https://jdk.java.net/ and learning more about Java, before returning to this README.

Contributing

Bug fixes, improvements and new features are always welcome! Please review the Contributing to Lucene Guide for information on contributing.

  • Additional Developer Documentation: dev-docs/

Discussion and Support