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

Reply via email to