Click here to Skip to main content
12,400,183 members (47,129 online)
Rate this:
Please Sign up or sign in to vote.
See more: Lucene.NET
I am currently using to search the content of files for keyword search. I am able to get the results correctly but I have a scenario where I need to display the keywords found in a particular file.
There are two different files containing "karthik" and "steven", and if I search for "karthik and steven" I am able to get both the files displayed. If I search only for "karthik" and "steven" separately, only the respective files are getting displayed.
When I search for "karthik and steven" simultaneously I get both the files in the result as I am displaying the filename alone, and now I need to display the particular keyword found in that particular file as a record in the listview.
enter code here     

Public bool StartSearch()     
bool bResult = false;           
Searcher objSearcher = new IndexSearcher(mstrIndexLocation);           
Analyzer objAnalyzer = new StandardAnalyzer();              
//Perform Search                 
DateTime dteStart = DateTime.Now;              
   Query objQuery = QueryParser.Parse(mstrSearchFor, "contents", objAnalyzer);              
   Hits objHits = objSearcher.Search(objQuery, objFilter);                 
DateTime dteEnd = DateTime.Now;                 
mlngTotalTime = (Date.GetTime(dteEnd) - Date.GetTime(dteStart));                 
mlngNumHitsFound = objHits.Length();                 
//GeneratePreviewText(objQuery, mstrSearchFor,objHits);                 
//Generate results - convert to XML                 
mstrResultsXML = "";                 
if (mlngNumHitsFound > 0)                 
mstrResultsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><Results>";                       
//Loop through results                       
for (int i = 0; i < objHits.Length(); i++)                       
//Get the next result                                   
Document objDocument = objHits.Doc(i);                                   
//Extract the data                                   
string strPath = objDocument.Get("path");                                   
string strFileName = objDocument.Get("name");                                   
if (strPath == null) { strPath = ""; }                                   
string strLastWrite = objDocument.Get("last_write_time");                                
   if (strLastWrite == null)                                         
strLastWrite = "unavailable";                                   
strLastWrite = DateField.StringToDate(strLastWrite).ToShortDateString();                                    }                                   
double dblScore = objHits.Score(i) * 100;                                   
string strScore = String.Format("{0:00.00}", dblScore);  
                                 //Add results as an XML row                             
      mstrResultsXML += "<Row>";                                   
//mstrResultsXML += "<Sequence>" + (i + 1).ToString() + "</Sequence>";
                                    mstrResultsXML += "<Path>" + strPath + "</Path>";
                                    mstrResultsXML += "<FileName>" + strFileName + "</FileName>";                                   
//mstrResultsXML += "<Score>" + strScore + "%" + "</Score>";
                                    mstrResultsXML += "</Row>";                              }                              catch                              {                                    break;
}                        //Finish off XML           
            mstrResultsXML += "</Results>";                       
//Build Dataview (to bind to datagrid                       

DataSet objDS = new DataSet();                       

StringReader objSR = new StringReader(mstrResultsXML);                 
objSR = null;                       
mobjResultsDataView = new DataView();        
               mobjResultsDataView = objDS.Tables[0].DefaultView;        
//Finish up                 
bResult = true;           
catch (Exception e)           
mstrError = "Exception: " + e.Message;           
objSearcher = null;
                  objAnalyzer = null;        
return bResult;     

Above is the code i am using for search and the xml i am binding to the listview, now i need to tag the particular keywords found in the respective document and display it in the listview as recordsss,simlar to the below listview

No FileName KeyWord(s)Found
1 Test.Doc karthik
2 Test2.Doc steven

i hope u guys undesrtood the question,
Posted 29-Dec-11 1:25am
Updated 29-Dec-11 20:09pm

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

karthikkaliber 30-Dec-11 1:57am
Pls read the question properly!!!!!
Member 6441668 19-Oct-12 2:20am

I am bit confused, I see only index directoy, I dont see the directory to search for..
I want to specify explicitly the fodler/directory to search for.... how can i specify?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.160721.1 | Last Updated 30 Dec 2011
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100