36635 Commits

Author SHA1 Message Date
Daniele Antuzi
da36c24cb9
Use thread-safe search version of HnswGraphSearcher (#12246)
Addressing comment received in the PR https://github.com/apache/lucene/pull/12246
2023-05-30 15:38:06 +01:00
Luca Cavanna
72b91156f3
Don't generate stacktrace for TimeExceededException (#12335)
The exception is package private and never rethrown, we can avoid
generating a stacktrace for it.
2023-05-30 10:29:46 +02:00
Patrick Zhai
d1850e44f3
Update TestVectorUtilProviders.java (#12338) 2023-05-29 16:26:29 -07:00
Uwe Schindler
db0c21f25d Clenaup and update changes and synchronize with 9.x 2023-05-26 18:22:51 +02:00
Jonathan Ellis
431dc7b415
add BitSet.clear() (#12268) 2023-05-26 18:13:16 +02:00
Greg Miller
367b03bfc2
GH#12321: Reduce visibility of StringsToAutomaton (#12331) 2023-05-26 08:55:02 -07:00
Uwe Schindler
f5f25777d8 Update changes to be correct with ARM (it is called NEON there) 2023-05-26 16:53:39 +02:00
Luca Cavanna
24712d7525 Move changes entry for #12328 to 9.7 2023-05-26 15:11:21 +02:00
Armin Braun
fd75807350
Optimize ConjunctionDISI.createConjunction (#12328)
This method is showing up as a little hot when profiling some queries.
Almost all the time spent in this method is just burnt on ceremony
around stream indirections that don't inline.
Moving this to iterators, simplifying the check for same doc id and also saving one iteration (for the min
cost) makes this method far cheaper and easier to read.
2023-05-26 13:44:39 +02:00
Luca Cavanna
0ce6b9a67b Adjust changes entries for knn query concurrent rewrite
Moved entry for #12160 to 9.7.0 as it's been backported.
Added missing entry for #12325.
2023-05-26 09:25:54 +02:00
Luca Cavanna
10bebde269
Parallelize knn query rewrite across slices rather than segments (#12325)
The concurrent query rewrite for knn vectory query introduced with #12160
requests one thread per segment to the executor. To align this with the
IndexSearcher parallel behaviour, we should rather parallelize across
slices. Also, we can reuse the same slice executor instance that the
index searcher already holds, in that way we are using a
QueueSizeBasedExecutor when a thread pool executor is provided.
2023-05-26 09:17:25 +02:00
Uwe Schindler
c188d47a8b
Handle jdk.internal classes mentioned in vector superclass or interfaces during extraction (#12329) 2023-05-25 17:21:03 +02:00
Michael McCandless
7da7c43638
#12276: rename DaciukMihovAutomatonBuilder to StringsToAutomaton (#12310)
Closes #12276
2023-05-25 10:18:41 -04:00
Uwe Schindler
cf7245e38e Refactor loop to not addAll set to itsself on initial round (followup of #12311) 2023-05-25 09:06:45 +02:00
Chris Hegarty
f756f90644
Integrate the Incubating Panama Vector API (#12311)
Leverage accelerated vector hardware instructions in Vector Search.

Lucene already has a mechanism that enables the use of non-final JDK APIs, currently used for the Previewing Pamana Foreign API. This change expands this mechanism to include the Incubating Pamana Vector API. When the jdk.incubator.vector module is present at run time the Panamaized version of the low-level primitives used by Vector Search is enabled. If not present, the default scalar version of these low-level primitives is used (as it was previously).

Currently, we're only targeting support for JDK 20. A subsequent PR should evaluate JDK 21.
---------

Co-authored-by: Uwe Schindler <uschindler@apache.org>
Co-authored-by: Robert Muir <rmuir@apache.org>
2023-05-25 07:59:50 +01:00
Andrey Bozhko
c9c49bc553
[MINOR] Update javadoc in Query class (#12233)
- add a few missing full stops
- update wording in the description of Query#equals method
2023-05-23 12:16:50 +02:00
Patrick Zhai
8a602b5063
Add multi-thread searchability to OnHeapHnswGraph (#12257) 2023-05-21 21:48:46 -07:00
Peter Gromov
a454388b80
hunspell (minor): reduce allocations when processing compound rules (#12316) 2023-05-19 21:36:05 +02:00
Uwe Schindler
84e2e3afc3
Make sure APIJAR reproduces with different timezone (unfortunately java encodes the date using local timezone) (#12315) 2023-05-19 18:42:55 +02:00
Uwe Schindler
a8a95e64ce Forward port references to AccessController in VirtualMethod (#12308) 2023-05-19 16:38:24 +02:00
Jerry Chin
04ef6de826
GITHUB-12291: Skip blank lines from stopwords list. (#12299) 2023-05-18 16:58:32 +02:00
Michael Sokolov
6b51cce0b8 NeighborQueue.reset() now clears incomplete flag 2023-05-18 10:23:22 -04:00
Greg Miller
3e4ca4042c
Minor cleanup and improvements to DaciukMihovAutomatonBuilder (#12305) 2023-05-18 07:01:19 -07:00
Michael Sokolov
2facb3ae0e Revert "allocate one NeighborQueue per search for results (#12255)"
This reverts commit 9a7efe92c0b02ac161633c57a5f357e6a9002367.
2023-05-18 13:42:17 +00:00
Petr Portnov | PROgrm_JARvis
0c6e8aec67
Seal IndexReader and IndexReaderContext (#12296) 2023-05-17 08:47:47 +02:00
tang donghai
f53eb28af0
remove max recursion from Operations.java to AutomatonTestUtil.java (#12298)
Co-authored-by: tangdonghai <tangdonghai@meituan.com>
2023-05-16 07:09:28 -04:00
Patrick Zhai
8af305892d
Optimize HNSW diversity calculation (#12235) 2023-05-15 23:20:31 -07:00
tang donghai
0e172b0723
Update Javadoc for topoSortStates method after #12286 (#12292) 2023-05-15 18:06:01 +02:00
tang donghai
5d203f8337
toposort use iterator to avoid stackoverflow (#12286)
Co-authored-by: tangdonghai <tangdonghai@meituan.com>
2023-05-15 16:20:15 +02:00
Luca Cavanna
223e28ef16
Simplify SliceExecutor and QueueSizeBasedExecutor (#12285)
The only behaviour that QueueSizeBasedExecutor overrides from SliceExecutor is when to execute on the caller thread. There is no need to override the whole invokeAll method for that. Instead, this commit introduces a shouldExecuteOnCallerThread method that can be overridden.
2023-05-11 11:08:48 +02:00
Marcus
963ed7ce88
ToParentBlockJoinQuery Explain Support Score Mode (#12245)
* `ToParentBlockJoinQuery` Explain Support Score Mode

---------

Co-authored-by: Mikhail Khludnev <mkhl@apache.org>
2023-05-10 19:10:37 +03:00
Alan Woodward
dcbf7523a1 DOAP changes for release 9.6.0 2023-05-10 08:36:53 +01:00
Luca Cavanna
b6100d9787
Make TimeExceededException members final (#12271)
TimeExceededException has three members that are set within its constructor and never modified. They can be made final.
2023-05-09 11:28:23 +02:00
Luca Cavanna
082c49a9ef
Update javadocs for QueryTimeout (#12272)
QueryTimeout was introduced together with ExitableDirectoryReader but is
now also optionally set to the IndexSearcher to wrap the bulk scorer
with a TimeLimitingBulkScorer. Its javadocs needs updating.
2023-05-09 11:27:47 +02:00
Luca Cavanna
10bad40ed3
Make query timeout members final in ExitableDirectoryReader (#12274)
There's a couple of places in the Exitable wrapper classes where
queryTimeout is set within the constructor and never modified. This
commit makes such members final.
2023-05-09 11:27:06 +02:00
Luca Cavanna
1cd9c1d66a add missing changelog entry for #12220 2023-05-09 10:57:28 +02:00
Luca Cavanna
67bb384f72 add missing changelog entry for #12260 2023-05-09 10:52:03 +02:00
Luca Cavanna
9579d2de76 Move changes entry for #12270 to 9.7.0 section 2023-05-09 10:28:22 +02:00
Armin Braun
add9aba16d
Don't generate stacktrace in CollectionTerminatedException (#12270)
CollectionTerminatedException is always caught and never exposed to users so there's no point in filling
in a stack-trace for it.
2023-05-09 10:18:52 +02:00
Jonathan Ellis
9a7efe92c0
allocate one NeighborQueue per search for results (#12255) 2023-05-08 17:22:58 -04:00
Michael Sokolov
a39885fdab
GITHUB-12224: remove KnnGraphTester (moved to luceneutil) (#12238) 2023-05-08 10:12:36 -04:00
Uwe Schindler
397c2e547a
Fix MMapDirectory documentation for Java 20 (#12265) 2023-05-05 12:04:38 +02:00
Luca Cavanna
caeabf3930
Fix SynonymQuery equals implementation (#12260)
The term member of TermAndBoost used to be a Term instance and became a
BytesRef with #11941, which means its equals impl won't take the field
name into account. The SynonymQuery equals impl needs to be updated
accordingly to take the field into account as well, otherwise synonym
queries with same term and boost across different fields are equal which
is a bug.
2023-05-03 11:27:33 +02:00
Jonathan Ellis
3c163745bb Use HashMap (was TreeMap) for OnHeapHnswGraph neighbors 2023-04-30 17:59:39 -04:00
Patrick Zhai
1fa2be90ea Tidy the main branch 2023-04-26 21:21:57 -07:00
Alan Woodward
7374c200a1 Add next minor version 9.7.0 2023-04-26 16:44:47 +01:00
Christoph Büscher
f45e096304
Add ordering of files in compound files (#12241)
Today there is no specific ordering of how files are written to a compound file.
The current order is determined by iterating over the set of file names in
SegmentInfo, which is undefined. This commit changes to an order based
on file size. Colocating data from files that are smaller (typically metadata
files like terms index, field info etc...) but accessed often can help when
parts of these files are held in cache.
2023-04-26 14:01:02 +01:00
Luca Cavanna
b0befef912
QueryProfilerWeight to extend FilterWeight (#12242)
QueryProfilerWeight should override matches and delegate to the
subQueryWeight. Another way to fix this issue is to make it extend
ProfileWeight and override only methods that need to have a different
behaviour than delegating to the sub weight.
2023-04-26 10:24:57 +02:00
Alessandro Benedetti
4deb0003c4 Word2VecSynonymFilter constructor null check (#12169) 2023-04-24 17:28:12 +02:00
Daniele Antuzi
1f4f2bf509
Introduced the Word2VecSynonymFilter (#12169)
Co-authored-by: Alessandro Benedetti <a.benedetti@sease.io>
2023-04-24 13:35:26 +02:00