11package com .genexus .CA .search ;
22
3- import java .io .BufferedReader ;
43import java .io .File ;
54import java .io .FileInputStream ;
6- import java .io .FileReader ;
75import java .io .IOException ;
86import java .util .Iterator ;
97import java .util .List ;
8+
9+ import org .apache .logging .log4j .Logger ;
10+ import org .apache .logging .log4j .LogManager ;
1011import org .apache .lucene .analysis .standard .StandardAnalyzer ;
1112import org .apache .lucene .document .Document ;
1213import org .apache .lucene .document .Field ;
@@ -32,6 +33,8 @@ public final class Indexer {
3233 private static final int IDX = 1 ;
3334 private static final int DLT = 2 ;
3435
36+ private static final Logger logger = LogManager .getLogger ("Indexer.class" );
37+
3538 protected Indexer (String directory ) {
3639 this .indexDirectory = directory ;
3740 if (!this .indexExists (directory )) {
@@ -40,7 +43,7 @@ protected Indexer(String directory) {
4043 IndexWriter writer = new IndexWriter (directory , new StandardAnalyzer (), true );
4144 writer .close ();
4245 } catch (Exception var3 ) {
43- Logger . print (var3 .toString () );
46+ logger . error (var3 .getMessage (), var3 );
4447 }
4548 }
4649
@@ -58,48 +61,40 @@ protected void addContent(String uri, String lang, String title, String summary,
5861 List <XWPFParagraph > data = reader .getParagraphs ();
5962
6063 XWPFParagraph p ;
61- for (Iterator var14 = data .iterator (); var14 .hasNext (); content = content + p .getText ()) {
62- p = ( XWPFParagraph ) var14 .next ();
64+ for (Iterator < XWPFParagraph > var14 = data .iterator (); var14 .hasNext (); content = content + p .getText ()) {
65+ p = var14 .next ();
6366 }
6467 } else if (this .isPdfExtension (filePath )) {
6568 PDDocument document = Loader .loadPDF (new File (filePath ));
6669 new PDFTextStripperByArea ();
6770 PDFTextStripper tStripper = new PDFTextStripper ();
6871 content = content + tStripper .getText (document );
69- } else if (this .isTxtExtension (filePath )) {
70- File txt = new File (filePath );
71-
72- String st ;
73- for (BufferedReader br = new BufferedReader (new FileReader (txt )); (st = br .readLine ()) != null ; content = content + st ) {
74- }
7572 }
7673 } catch (IOException var16 ) {
7774 var16 .printStackTrace ();
7875 }
7976 }
8077
81- if (doc != null ) {
82- if (this .documentExists (uri , lang )) {
83- this .indexOperation (2 , lang , (Document )null , uri .toLowerCase ());
84- }
78+ if (this .documentExists (uri , lang )) {
79+ this .indexOperation (2 , lang , (Document ) null , uri .toLowerCase ());
80+ }
8581
86- doc .add (new Field ("uri" , uri , Store .YES , Index .UN_TOKENIZED ));
87- doc .add (new Field ("content" , content , Store .YES , Index .TOKENIZED ));
82+ doc .add (new Field ("uri" , uri , Store .YES , Index .UN_TOKENIZED ));
83+ doc .add (new Field ("content" , content , Store .YES , Index .TOKENIZED ));
8884
89- try {
90- this .indexOperation (1 , lang , doc , (String )null );
91- } catch (Exception var15 ) {
92- Logger .print (var15 .toString ());
93- }
94- }
85+ try {
86+ this .indexOperation (1 , lang , doc , (String )null );
87+ } catch (Exception var15 ) {
88+ logger .error (var15 .getMessage (), var15 );
89+ }
9590
9691 }
9792
9893 protected void deleteContent (String uri ) {
9994 try {
10095 this .indexOperation (2 , (String )null , (Document )null , uri .toLowerCase ());
10196 } catch (Exception var3 ) {
102- Logger . print (var3 .toString () );
97+ logger . error (var3 .getMessage (), var3 );
10398 }
10499
105100 }
@@ -113,7 +108,7 @@ protected synchronized void indexOperation(int op, String lang, Document doc, St
113108 writer .optimize ();
114109 writer .close ();
115110 } catch (Exception var9 ) {
116- Logger . print (var9 .toString () );
111+ logger . error (var9 .getMessage (), var9 );
117112 }
118113 break ;
119114 case 2 :
@@ -135,7 +130,7 @@ protected synchronized void indexOperation(int op, String lang, Document doc, St
135130
136131 reader .close ();
137132 } catch (Exception var8 ) {
138- Logger . print (var8 .toString () );
133+ logger . error (var8 .getMessage (), var8 );
139134 }
140135 }
141136
@@ -157,19 +152,10 @@ private boolean indexExists(String dir) {
157152 private boolean documentExists (String uri , String lang ) {
158153 boolean value = false ;
159154
160- try {
161- IndexSearcher searcher = new IndexSearcher (this .indexDirectory );
162- BooleanQuery query = new BooleanQuery ();
163- query .add (new TermQuery (new Term ("uri" , uri )), Occur .MUST );
164- query .add (new TermQuery (new Term ("language" , lang )), Occur .MUST );
165- Hits hits = searcher .search (query );
166- searcher .close ();
167- if (hits .length () > 0 ) {
168- value = true ;
169- }
170- } catch (IOException var7 ) {
171- Logger .print (var7 .toString ());
172- }
155+ Hits hits = getHits (uri , lang );
156+ if (hits .length () > 0 ) {
157+ value = true ;
158+ }
173159
174160 return value ;
175161 }
@@ -178,18 +164,12 @@ private int getDocumentId(String uri, String lang) {
178164 int value = -1 ;
179165
180166 try {
181- IndexSearcher searcher = new IndexSearcher (this .indexDirectory );
182- BooleanQuery query = new BooleanQuery ();
183- query .add (new TermQuery (new Term ("uri" , uri )), Occur .MUST );
184- query .add (new TermQuery (new Term ("language" , lang )), Occur .MUST );
185- Hits hits = searcher .search (query );
167+ Hits hits = this .getHits (uri , lang );
186168 if (hits .length () > 0 ) {
187169 value = hits .id (0 );
188170 }
189-
190- searcher .close ();
191171 } catch (IOException var7 ) {
192- Logger . print (var7 .toString () );
172+ logger . error (var7 .getMessage (), var7 );
193173 }
194174
195175 return value ;
@@ -199,6 +179,23 @@ private boolean isMicrosoftExtension(String filePath) {
199179 return filePath .endsWith (".doc" ) || filePath .endsWith (".docx" ) || filePath .endsWith (".xls" ) || filePath .endsWith (".xlsx" ) || filePath .endsWith (".ppt" ) || filePath .endsWith (".pptx" );
200180 }
201181
182+ private Hits getHits (String uri , String lang ) {
183+ IndexSearcher searcher = null ;
184+ Hits hits = null ;
185+ try {
186+ searcher = new IndexSearcher (this .indexDirectory );
187+ BooleanQuery query = new BooleanQuery ();
188+ query .add (new TermQuery (new Term ("uri" , uri )), Occur .MUST );
189+ query .add (new TermQuery (new Term ("language" , lang )), Occur .MUST );
190+ hits = searcher .search (query );
191+ searcher .close ();
192+ } catch (IOException e ) {
193+ logger .error (e .getMessage (), e );
194+ }
195+
196+ return hits ;
197+ }
198+
202199 private boolean isPdfExtension (String filePath ) {
203200 return filePath .endsWith (".pdf" );
204201 }
0 commit comments