Пример #1
0
        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));
        }
Пример #2
0
 public LuceneController(LuceneService lucene,
                         IWebHostEnvironment env,
                         ILogger <LuceneController> logger)
 {
     _lucene = lucene;
     _env    = env;
     _logger = logger;
 }
Пример #3
0
 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);
        }
Пример #5
0
        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));
        }
Пример #6
0
        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();
        }
Пример #7
0
        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();
            }
        }
Пример #9
0
        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));
        }
Пример #10
0
        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();
            }
        }
Пример #11
0
        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));
        }
Пример #12
0
        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();
        }
Пример #13
0
        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));
        }
Пример #14
0
        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");
            }
        }
Пример #15
0
        // 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()));
        }
Пример #16
0
        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");
            }
        }
Пример #18
0
 // POST: api/Test
 public void Post([FromBody] string value)
 {
     LuceneService.SearchOnIndex(value, "eBookId", "author");
 }
Пример #19
0
 // GET: api/Test
 public IEnumerable <string> Get(string query, string searchField)
 {
     return(LuceneService.SearchOnIndex(query, "eBookId", searchField));
 }
Пример #20
0
        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();
        }
Пример #21
0
 public ATechnique()
 {
     _booleanQueryGenerator = new BooleanQueryGenerator();
     _luceneService         = new LuceneService();
 }