Hi,
I am beginner in Apache lucene, I am using 5.3.1.
I have created  the index on the database result. The index values are
having alphanumeric and strings values. I am able to search the strings but
I am not able to search alphanumeric values.

Can someone help me here.

Below is indexing code...

int indexDocs(IndexWriter writer, Connection conn) throws Exception {
Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(sql);
  int i=0;
  while (rs.next()) {
     Document d = new Document();
    // System.out.println("cpn is" + rs.getString("cpn"));
    // System.out.println("mpn is" + rs.getString("mpn"));

  d.add(new TextField("cpn", rs.getString("cpn"), Field.Store.YES));


     writer.addDocument(d);
     i++;
 }
}

Searching code:


private void searchIndex(Path indexDir, String queryStr) throws Exception {
Directory directory = FSDirectory.open(indexDir);
System.out.println("The query string is " + queryStr);
// MultiFieldQueryParser queryParser = new MultiFieldQueryParser(new
// String[] {"mpn"}, new StandardAnalyzer());
// IndexReader reader = IndexReader.open(directory);
IndexReader reader = DirectoryReader.open(directory);
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer();
analyzer.tokenStream("cpn", queryStr);
QueryParser parser = new QueryParser("cpn", analyzer);
parser.setDefaultOperator(Operator.OR);
parser.getAllowLeadingWildcard();
parser.setAutoGeneratePhraseQueries(true);
Query query = parser.parse(queryStr);
searcher.search(query, 100);
TopDocs topDocs = searcher.search(query, MAX_HITS);

ScoreDoc[] hits = topDocs.scoreDocs;
System.out.println(hits.length + " Record(s) Found");
for (int i = 0; i < hits.length; i++) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
System.out.println("\"value is:\" " + d.get("cpn"));
}
if (hits.length == 0) {
System.out.println("No Data Founds ");
}


Thanks in advance.

-- 
Keep Smiling....
Thanks & Regards
Bhaskar.
Mobile:9866724142

Reply via email to