lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Miller <markrmil...@gmail.com>
Subject Re: Open IndexReader read-only
Date Mon, 08 Dec 2008 16:39:03 GMT
Chris Bamford wrote:
> Mark
>
> > Look for the static factory methods on IndexReader.
>
> I take it you mean IndexReader.open (dir, true) ?

Yeah.

> If so, how do I then pass that into DelayCloseIndexSearcher() so that 
> I can continue to rely on all the existing calls like:
>
>     IndexReader reader = contentSearcher.getIndexReader();
>
> Put another way, how do I associate the static IndexReader with an 
> IndexSearcher object so I can use getIndexReader() to get it again?
Find where that contentSearcher is being created. Use a different 
constructor to create the Searcher - use the one that takes an 
IndexReader. Now you control the IndexReader creation, and you can use 
the readonly constructor option when you create it. That Searcher is 
either using a constructor that takes an IndexReader, or a Directory, or 
a String. If its using a String constructor, instead, use the Directory 
factory that takes a String, make a Directory, and use it to make an 
IndexReader that you build the IndexSearcher with. If its using a 
Directory, use that directory to make the IndexReader that is used for 
you IndexSearcher.

>
> Thanks for your continued help with this  :-)
>
> Chris
>
> Mark Miller wrote:
>> Look for the static factory methods on IndexReader.
>>
>> - Mark
>>
>> Chris Bamford wrote:
>>> Thanks Mark.
>>>
>>> I have identified the spot where I need to do the surgery.  However, 
>>> I discover that IndexReader is abstract, but it seems crazy that I 
>>> need to make a concrete class for which I have no need to add any of 
>>> my own logic...  Is there a suitable subclass I can use?  The 
>>> documented ones - FilterIndexReader, InstantiatedIndexReader, 
>>> MultiReader, ParallelReader - all seem too complicated for what I 
>>> need.  My only requirement is to open it read-only!
>>>
>>> Am I missing something?
>>>
>>> Mark Miller wrote:
>>>> Chris Bamford wrote:
>>>>>
>>>>> So does that mean if you don't explicitly open an IndexReader, the 
>>>>> IndexSearcher will do it for you?  Or what?
>>>>>
>>>> Right. The IndexReader takes a Directory, and the IndexSearcher 
>>>> takes an IndexReader - there are sugar constructors though - An 
>>>> IndexSearcher will also accept a String file path, which will be 
>>>> used to create a Directory which is used to create an IndexReader. 
>>>> It will also take a Directory, which will be used to create an 
>>>> IndexReader. It will also just accept the IndexReader.
>>>>
>>>> So you have to find how that IndexReader is being created (or 
>>>> where) and change the code so that you get to create it, and when 
>>>> you do, do it read-only. It should be easier than that roundabout 
>>>> info sounds.
>>>>
>>>> - Mark
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message