Background: For performance, it is advisable to get the storedFields()
*once* to process all documents in the search result. The resason for
the change was the problem of accessing stored fields would otherwise
need to use ThreadLocals to keep state.
Issue: https://github.com/apache/lucene/pull/11998
This was introduced in Lucene 9.5.
It is also listed in MIGRATE.txt:
### Removed deprecated IndexSearcher.doc, IndexReader.document,
IndexReader.getTermVectors (GITHUB#11998)
The deprecated Stored Fields and Term Vectors apis relied upon
threadlocal storage and have been removed.
Instead, call storedFields()/termVectors() to return an instance
which can fetch data for multiple documents,
and will be garbage-collected as usual.
For example:
```java
TopDocs hits = searcher.search(query, 10);
StoredFields storedFields = reader.storedFields();
for (ScoreDoc hit : hits.scoreDocs) {
Document doc = storedFields.document(hit.doc);
}
```
Note that these StoredFields and TermVectors instances should only
be consumed in the thread where
they were acquired. For instance, it is illegal to share them across
threads.
Uwe
Am 25.09.2023 um 07:53 schrieb Michael Wechner:
Hi Shubham
Great, thank you very much!
Michael
Am 25.09.23 um 02:14 schrieb Shubham Chaudhary:
Hi Michael,
You could replace this with
*indexReader.storedFields().document(scoreDoc.doc)*
Docs -
https://lucene.apache.org/core/9_7_0/core/org/apache/lucene/index/StoredFields.html#document(int)
- Shubham
On Mon, Sep 25, 2023 at 1:59 AM Michael Wechner
<michael.wech...@wyona.com>
wrote:
Hi
I recently noctived that
IndexReader.document(int)
is deprecated, whereas my code is currently
TopDocs topDocs = searcher.search(query, k);
for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
Document doc = indexReader.document(scoreDoc.doc);
}
How do I best replace document(int)?
Thanks
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org
--
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail:u...@thetaphi.de