I did some investigation and found out that the retrieving part of
documents works fine while Solr did not restarted. But the searching part
of documents did not work. After I restarted Solr it seems that the core
corrupted and failed to start! Here is the corresponding log:

org.apache.solr.common.SolrException: Error opening new searcher
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:896)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:662)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:513)
    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:278)
    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:272)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.solr.common.SolrException: Error opening new searcher
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1604)
    at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1716)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:868)
    ... 9 more
Caused by: org.apache.lucene.index.IndexNotFoundException: no
segments* file found in
NRTCachingDirectory(MMapDirectory@C:\Users\Ali\workspace\lucene_solr_5_0_0\solr\server\solr\document\data\index
lockFactory=org.apache.lucene.store.SimpleFSLockFactory@3bf76891;
maxCacheMB=48.0 maxMergeSizeMB=4.0): files: [_2_Lucene50_0.doc,
write.lock, _2_Lucene50_0.pos, _2.nvd, _2.fdt, _2_Lucene50_0.tim]
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:821)
    at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:78)
    at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:65)
    at 
org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:272)
    at 
org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:115)
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1573)
    ... 11 more

4/7/2015, 6:53:26 PM
ERROR
SolrIndexWriter
SolrIndexWriter was not closed prior to finalize(),​ indicates a bug
-- POSSIBLE RESOURCE LEAK!!!
4/7/2015, 6:53:26 PM
ERROR
SolrIndexWriter
Error closing IndexWriter
java.lang.NullPointerException
    at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:2959)
    at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:2927)
    at org.apache.lucene.index.IndexWriter.shutdown(IndexWriter.java:965)
    at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1010)
    at org.apache.solr.update.SolrIndexWriter.close(SolrIndexWriter.java:130)
    at org.apache.solr.update.SolrIndexWriter.finalize(SolrIndexWriter.java:183)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:101)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:32)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:190)

There for my guess would be problem with indexing the keywordField and also
problem related to closing the IndexWriter.

On Tue, Apr 7, 2015 at 6:13 PM, Ali Nazemian <alinazem...@gmail.com> wrote:

> Dear Upayavira,
> Hi,
> It is just the part of my code in which caused the problem. I know
> searchComponent is not for changing the index, but for the purpose of
> extracting document keywords I was forced to hack searchComponent for
> extracting keywords and putting them into index.
> For more information about why I chose searchComponent at the first place
> please follow this link:
>
> https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201503.mbox/browser
>
> Best regards.
>
>
> On Tue, Apr 7, 2015 at 5:30 PM, Upayavira <u...@odoko.co.uk> wrote:
>
>> What are you trying to do? A search component is not intended for
>> updating the index, so it really doesn’t surprise me that you aren’t
>> seeing updates.
>>
>> I’d suggest you describe the problem you are trying to solve before
>> proposing solutions.
>>
>> Upayavira
>>
>>
>> On Tue, Apr 7, 2015, at 01:32 PM, Ali Nazemian wrote:
>> > I implement a small code for the purpose of extracting some keywords out
>> > of
>> > Lucene index. I did implement that using search component. My problem is
>> > when I tried to update Lucene IndexWriter, Solr index which is placed on
>> > top of that, does not affect. As you can see I did the commit part.
>> >
>> >     BooleanQuery query = new BooleanQuery();
>> >         for (String fieldName : keywordSourceFields) {
>> >           TermQuery termQuery = new TermQuery(new
>> Term(fieldName,"N/A"));
>> >           query.add(termQuery, Occur.MUST_NOT);
>> >         }
>> >         TermQuery termQuery=new TermQuery(new Term(keywordField,
>> "N/A"));
>> >         query.add(termQuery, Occur.MUST);
>> >         try {
>> >           //Query q= new QueryParser(keywordField, new
>> > StandardAnalyzer()).parse(query.toString());
>> >           TopDocs results = searcher.search(query,
>> >               maxNumDocs);
>> >           ScoreDoc[] hits = results.scoreDocs;
>> >           IndexWriter writer = getLuceneIndexWriter(searcher.getPath());
>> >           for (int i = 0; i < hits.length; i++) {
>> >             Document document = searcher.doc(hits[i].doc);
>> >             List<String> keywords = keyword.getKeywords(hits[i].doc);
>> >             if(keywords.size()>0) document.removeFields(keywordField);
>> >             for (String word : keywords) {
>> >               document.add(new StringField(keywordField, word,
>> > Field.Store.YES));
>> >             }
>> >             String uniqueKey =
>> > searcher.getSchema().getUniqueKeyField().getName();
>> >             writer.updateDocument(new Term(uniqueKey,
>> > document.get(uniqueKey)),
>> >                 document);
>> >           }
>> >           writer.commit();
>> >           writer.forceMerge(1);
>> >           writer.close();
>> >         } catch (IOException | SyntaxError e) {
>> >           throw new RuntimeException();
>> >         }
>> >
>> > Please help me through solving this problem.
>> >
>> > --
>> > A.Nazemian
>>
>
>
>
> --
> A.Nazemian
>



-- 
A.Nazemian

Reply via email to