public List <SearchDoc> searchfield(string textSearch) { List <SearchDoc> list = new List <SearchDoc>(); using (Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_48)) { var queryParser = new QueryParser(Version.LUCENE_48, "FullText", analyzer); queryParser.AllowLeadingWildcard = true; var query = queryParser.Parse(textSearch); Sort sort = new Sort(SortField.FIELD_SCORE); var matches = Searcher.Search(query, null, 100, sort, true, true).ScoreDocs; matches.OrderBy(de => de.Score); foreach (var item in matches) { var id = item.Doc; var doc = Searcher.Doc(id); SearchDoc searchDoc = new SearchDoc(); searchDoc.id = doc.Get("Id"); searchDoc.Name = doc.GetField("Name").GetStringValue(); searchDoc.Path = doc.GetField("Path").GetStringValue(); searchDoc.Desc1 = doc.GetField("Desc1").GetStringValue(); list.Add(searchDoc); } } return(list); }
public List <SearchDoc> searchfield(string textSearch) { //var table = Sample.Clone(); // var directory = FSDirectory.Open( // AppDomain.CurrentDomain.BaseDirectory + @"\App_Data\LuceneIndexes" // ); //IndexSearcher searcher = new IndexSearcher(directory); //IndexReader indexReader = IndexReader.Open(directory, true); //Searcher indexSearch = new IndexSearcher(indexReader); List <SearchDoc> list = new List <SearchDoc>(); // using (var reader = DirectoryReader.Open(Directory)) // { //IndexSearcher searcher = new IndexSearcher(Reader); using (Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_48)) { var queryParser = new QueryParser(Version.LUCENE_48, "FullText", analyzer); queryParser.AllowLeadingWildcard = true; var query = queryParser.Parse(textSearch); //var query=queryParser.Parse("FullText:"+textSearch); //var query = new TermQuery(new Term("FullText", textSearch)); //SortField sortField = new SortField("FullText",SortFieldType.STRING); Sort sort = new Sort(SortField.FIELD_SCORE); // var collector = TopScoreDocCollector.Create(1000,true); // searcher.Search(query,collector); // searcher.Search(query,10,sort); //var matches = collector.GetTopDocs(0,30).ScoreDocs; var matches = Searcher.Search(query, null, 100, sort, true, true).ScoreDocs; matches.OrderBy(de => de.Score); // #region Test // Stopwatch timer=new Stopwatch(); // timer.Start(); // TermQuery query1 = new TermQuery(new Term("FullText",textSearch)); // ScoreDoc[] hits = Searcher.Search(query1, 400).ScoreDocs; // if (hits.Length > 0) { // for (int i = 0; i < hits.Length; i++) // { // Document hitDoc = Searcher.Doc(hits[i].Doc); // string c=hitDoc.Get("Id"); // } // } // timer.Stop(); // TimeSpan ts = timer.Elapsed; // string b=ts.Seconds.ToString(); // #endregion foreach (var item in matches) { var id = item.Doc; var doc = Searcher.Doc(id); //var d=doc.GetField("Name").ToString(); SearchDoc searchDoc = new SearchDoc(); searchDoc.id = doc.Get("Id"); searchDoc.Name = doc.GetField("Name").GetStringValue(); //searchDoc.Desc2=doc.GetField("Desc2").GetStringValue(); searchDoc.Path = doc.GetField("Path").GetStringValue(); searchDoc.Desc1 = doc.GetField("Desc1").GetStringValue(); list.Add(searchDoc); //string name= //string Desc2=doc.GetField("Desc2").ToString(); // doc.GetField("Name").GetStringValue; // row["LastName"] = doc.GetField("Desc2").GetStringValue; // row["JobTitle"] = doc.GetField("Path").GetStringValue; // row["JobTitle"] = doc.GetField("JobTitle").GetStringValue; // row["BirthDate"] = doc.GetField("BirthDate").GetStringValue; // row["ID"] = doc.GetField("ID").GetStringValue; } } //} return(list); }