public IHttpActionResult PutEBook(int id, EBook eBook) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != eBook.EBookId) { return(BadRequest()); } db.Entry(eBook).State = EntityState.Modified; try { db.SaveChanges(); LuceneService.UpdateLuceneDoc(eBook); } catch (DbUpdateConcurrencyException) { if (!EBookExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public LuceneController(LuceneService lucene, IWebHostEnvironment env, ILogger <LuceneController> logger) { _lucene = lucene; _env = env; _logger = logger; }
private static void Main(string[] args) { //LuceneService LService = new LuceneService(new BasicServci()); foreach (var item in init()) { using (var Service = new LuceneService(new BasicServci(), item)) { Service.Run(); } } }
private void SetTokenNumber() { CollectionStatistics stat = LuceneService.Searcher.CollectionStatistics(ProjectInfo.TextFieldKey); this.NumberOfTokens = (ulong)stat.SumTotalTermFreq; for (int i = 0; i < LuceneService.DirReader.MaxDoc; i++) { LuceneService.GetTokenDataForDoc(LuceneService.DirReader.Document(i).GetField(ProjectInfo.TextFieldKey).GetStringValue()); } AllFields.Add("Tokens", this.NumberOfTokens); }
public IHttpActionResult GetMultiple(Dictionary <string, string> searchCriteria) { List <string> searchResults = new List <string>(); foreach (KeyValuePair <string, string> criteria in searchCriteria) { searchResults.AddRange(LuceneService.SearchOnIndex(criteria.Value, "eBookId", criteria.Key)); } return(Ok(searchResults)); }
public void WriteSituation(List <int> messageIds, string situation, int sid) { writer.WriteStartElement("Situation", situation); writer.WriteAttributeString("SId", sid.ToString()); foreach (var id in messageIds) { var msg = LuceneService.RetrieveMessageById(id); WriteMessage(id, msg.Contents[ProjectInfo.TextFieldKey].ToString(), msg.Contents[ProjectInfo.SenderFieldKey].ToString(), msg.Contents[ProjectInfo.DateFieldKey].ToString()); } writer.WriteEndElement(); }
void btnBuildCluster_Click(object sender, RoutedEventArgs e) { string path = tbxPathCluster.Text; LuceneService lucene = new LuceneService(tbxPathCluster.Text.ToString()); //lucene.GetTermFrequency(); //lucene.InitialiseLucene(); //lucene.BuildIndex(articles); // lucene.BuildLeaderIndex(articles); lucene.IndexClustering(articles); spSuccessCluster.Visibility = Visibility.Visible; }
private void _csv_MetadataAdded(object sender, EventArgs e) { ProjectInfo.CreateNewProject(this._path, _csv.DateFieldKey, _csv.SenderFieldKey, _csv.TextFieldKey); LuceneService.OpenNewIndex(); _reader.GetLineCount(this._filepath, _csv.Header); //i have no f*****g clue what this does var result = IndexHelper.PopulateIndex(this._filepath, _csv.AllFields, _csv.Header); LuceneService.OpenReader(); if (result == 1) { _csv.CorpusIndexed(); } }
public IHttpActionResult Get(string query, string searchField) { List <string> searchResultIds = LuceneService.SearchOnIndex(query, "eBookId", searchField); List <EBook> searchResults = new List <EBook>(); foreach (var searchResultId in searchResultIds) { var id = int.Parse(searchResultId); searchResults.Add(db.EBooks.AsNoTracking().SingleOrDefault(x => x.EBookId == id)); } return(Ok(searchResults)); }
void btnSearch_Click(object sender, RoutedEventArgs e) { LuceneService lucene = new LuceneService(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\LuceneIndex\\"); try { List <string> fields = new List <string>(); if (ckAuthor.IsChecked == true) { fields.Add("Author"); } if (ckTitle.IsChecked == true) { fields.Add("Title"); } if (ckSummary.IsChecked == true) { fields.Add("Summary"); } var watch = Stopwatch.StartNew(); IEnumerable <Article> Results = lucene.AdvancedSearch(tbxTerms.Text.ToLower(), fields.ToArray()); watch.Stop(); String elapsedMs = watch.ElapsedMilliseconds.ToString(); if (Results.Count() == 0) { DatagridResults.Visibility = Visibility.Collapsed; NoResults.Visibility = Visibility.Visible; } else { NoResults.Visibility = Visibility.Collapsed; DatagridResults.Visibility = Visibility.Visible; DatagridResults.ItemsSource = Results; } DocumentsReturned.Text = "Documents Found: " + Results.Count(); TimeElapsed.Text = "Time: " + elapsedMs + " ms"; } catch (NullReferenceException) { var dialog = new ModernDialog { Title = "Index Error", Content = "Index does not exist" }; dialog.ShowDialog(); } }
public IHttpActionResult PostEBook(EBook eBook) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.EBooks.Add(eBook); db.SaveChanges(); LuceneService.RegisterNewLuceneDoc(eBook); return(CreatedAtRoute("DefaultApi", new { id = eBook.EBookId }, eBook)); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); HttpConfiguration config = GlobalConfiguration.Configuration; config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false; var initIndexing = new LuceneService(); }
public IHttpActionResult DeleteEBook(int id) { EBook eBook = db.EBooks.Find(id); if (eBook == null) { return(NotFound()); } db.EBooks.Remove(eBook); db.SaveChanges(); LuceneService.DeleteLuceneDoc(eBook); return(Ok(eBook)); }
public void DisplaySituation() { CurrentSituation.Clear(); List <int> temp = new List <int>(); if (QueryResult != null && QueryResult.Count != 0) { counterLabel.Text = DisplayIndex.ToString() + "/" + QueryResult.Count.ToString(); foreach (var list in QueryResult[DisplayIndex]) { temp.AddRange(list); } //temp.Add(); //temp.Add(temp.Min() - 2); //temp.Add(temp.Max() + 1); //temp.Add(temp.Max() + 2); ////bleh temp.Sort(); Hits = temp; CurrentSituation.Add(LuceneService.RetrieveMessageById(temp.Min() - 2)); CurrentSituation.Add(LuceneService.RetrieveMessageById(temp.Min() - 1)); for (int i = temp[0]; i <= temp[temp.Count - 1]; i++) { CurrentSituation.Add(LuceneService.RetrieveMessageById(i)); } CurrentSituation.Add(LuceneService.RetrieveMessageById(temp.Max() + 1)); CurrentSituation.Add(LuceneService.RetrieveMessageById(temp.Max() + 2)); suggesterView.SetObjects(CurrentSituation); SetUpChatView(); suggesterView.Sort(suggesterView.AllColumns.Find(x => x.Text.Equals(ProjectInfo.DateFieldKey)), SortOrder.Ascending); } if (QueryResult == null) { MessageBox.Show("Incorrect query"); } if (QueryResult != null && QueryResult.Count == 0) { MessageBox.Show("Nothing found"); } }
// GET: Characters public ActionResult Index(string searchString) { var lista = db.Characters.ToList(); //List<Character> lista = new List<Character> //{ // new Character{CharacterID=1, Name="Skywalker", }, // new Character{CharacterID=2, Name="Aragorn", }, // new Character{CharacterID=3, Name="luke Cage" } //}; //string strIndexDir = @"C:\Users\zdanc\Desktop\test2.txt"; //Lucene.Net.Store.Directory indexDir = Lucene.Net.Store.FSDirectory.Open(new System.IO.DirectoryInfo(strIndexDir)); //Analyzer std = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); //Version parameter is used for backward compatibility. Stop words can also be passed to avoid indexing certain words //IndexWriter idxw = new IndexWriter(indexDir, std, true, IndexWriter.MaxFieldLength.UNLIMITED); //Create an Index writer object. //Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document(); //Lucene.Net.Documents.Field fldText = new Lucene.Net.Documents.Field("text", System.IO.File.ReadAllText(@"C:\Users\zdanc\Desktop\test.txt"), Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED, Lucene.Net.Documents.Field.TermVector.YES); //doc.Add(fldText); //write the document to the index //idxw.AddDocument(doc); //optimize and close the writer //idxw.Optimize(); //idxw.Close(); //Response.Write("Indexing Done"); //var people = from m in _context.Persons // select m; if (!String.IsNullOrEmpty(searchString)) { var x = new LuceneService(); x.BuildIndex(lista); var result = x.Search(searchString); return(View(result)); } return(View(db.Characters.ToList())); }
static void Main(string[] args) { Console.OutputEncoding = System.Text.Encoding.UTF8; var directoryInfo = new DirectoryInfo(@"C:\Users\anton\Desktop\Train"); Analyzer analyzer = new StandardAnalyzer(luceneVersion); Lucene.Net.Store.Directory directory = new RAMDirectory(); var luceneService = new LuceneService(directory, analyzer, new LuceneTools.LuceneConfig { LuceneVersion = luceneVersion }); var indexer = new TextFileIndexer(); var provisioningService = new ProvisionService(luceneService, indexer); var vectorTokenizer = new VectorTokenizer(analyzer); provisioningService.ProvisionFromDirectory(directoryInfo); DirectoryInfo testDirectory = new DirectoryInfo(@"C:\Users\anton\Desktop\Test"); var testDoc = testDirectory.GetFiles().Select(t => indexer.ProcessDocument(t.FullName)).FirstOrDefault(); var scam = new ScamAlgorithm(vectorTokenizer, luceneService, new ScamConfig()); foreach (var doc in scam.GetScore(testDoc, DetectionStrategy.ByDocument)) { if (doc.Value > 0.1) { Console.WriteLine($"Doc: {doc.Key}, Score = {doc.Value}"); } } Console.WriteLine(); foreach (var doc in scam.GetScore(testDoc, DetectionStrategy.ByPhrase)) { if (doc.Value > 0.1) { Console.WriteLine($"Doc: {doc.Key}, Score = {doc.Value}"); } } }
private void _view_OpenIndexedCorpus(object sender, OpenEventArgs e) { //ProjectInfo.CurrentIndexPath = _main.CurrentIndexPath; ProjectInfo.UnloadData(); _service.UnloadData(); SituationIndex.UnloadData(); ProjectInfo.LoadProject(e.Path); if (LuceneService.OpenIndex()) { MessageContainer.Messages = new List <DynamicMessage>(); _main.SetLineCount(ProjectInfo.Data.LineCount); _main.FileLoadState = true; AddDocumentsToDisplay(2000); _main.ShowDates(ProjectInfo.Data.MessagesPerDay.Keys.ToList()); //_main.UpdateNgramState(_ngrammer.IndexExists); } else { MessageBox.Show("No index"); } }
// POST: api/Test public void Post([FromBody] string value) { LuceneService.SearchOnIndex(value, "eBookId", "author"); }
// GET: api/Test public IEnumerable <string> Get(string query, string searchField) { return(LuceneService.SearchOnIndex(query, "eBookId", searchField)); }
static void Main() { var svc = LuceneService.Create("p:\\lucene"); var dll = ModuleDefinition.ReadModule("p:\\ClassLibraryTest.dll"); Console.WriteLine(dll.Runtime); var version = dll.Assembly.CustomAttributes .FirstOrDefault(a => a.AttributeType.FullName == typeof(AssemblyInformationalVersionAttribute).FullName) ?.ConstructorArguments.FirstOrDefault().Value; if (version != null) { Console.WriteLine($"Version: {version}"); } var info = new AssemblyInformation(dll); foreach (var r in info.AssemblyNameReferences.Concat(dll.AssemblyReferences)) { Console.WriteLine("{0} {1}", r.Name, r.Version); } Directory.Delete("p:\\lucene", true); using (svc.BeginWrite()) { var guid = svc.AddAssembly(dll.Assembly.Name.Name, info.Version.ToString()); foreach (var t in info.DefinedTypes.GroupBy(a => a.Namespace)) { Console.WriteLine(t.Key); foreach (var type in t) { var cls = new ClassInformation(type, dll.Assembly.Name.Name + " " + version); svc.AddClass(guid, cls); Console.WriteLine("\t{0}", type.FullName); } } svc.Flush(); } while (true) { //Query q = new TermQuery(new Term("name", Console.ReadLine())); var results = svc.Search(Console.ReadLine(), LuceneService.DocumentType.Class, LuceneService.DocumentType.Assembly, LuceneService.DocumentType.Method | LuceneService.DocumentType.Property).ToList(); foreach (var r in results.OrderBy(a => { var ordering = a.Get("type"); switch (ordering) { case "class": return(0); case "method": return(1); case "property": return(2); default: return(10); } })) { Console.WriteLine(r.Get("name")); } } Console.ReadLine(); }
public ATechnique() { _booleanQueryGenerator = new BooleanQueryGenerator(); _luceneService = new LuceneService(); }