Индексирование и поиск url адреса

Как настроить анализатор для поиска выделенных слов в конкретных примерах, при помощи Lucene.Net?

Например:

  1. ecn.dev.virtualearth.net:443
  2. azwcus1-client-s.gateway.messenger.live.com:443
  3. safeurl.maxthon.cn/data/v3/config.dat

Код:

   const LuceneVersion AppLuceneVersion = LuceneVersion.LUCENE_48;

   string indexPath = "index";

   using var dir = FSDirectory.Open(indexPath);

   StandardAnalyzer analyzer = new(AppLuceneVersion);

   IndexWriterConfig indexConfig = new(AppLuceneVersion, analyzer);

   using var writer = new IndexWriter(dir, indexConfig);

   //------------------------//
        
   using (StreamReader sr = new($"log1.txt"))
   {
      string line;
      while ((line = sr.ReadLine()) != null)
      {
         var doc = new Document
         {
            new TextField("favoritePhrase", line, Field.Store.YES)
         };

         writer.AddDocument(doc);
       }
    }
        
    writer.Flush(triggerMerge: false, applyAllDeletes: false);
    writer.Commit();

    //--------------------------//

    QueryParser parser = new(AppLuceneVersion, "favoritePhrase", analyzer)
    {
      AllowLeadingWildcard = true
    };

    Query parsedQuery = parser.Parse(textBox1.Text);

    var timer = new Stopwatch();
    timer.Start();

    using var reader = DirectoryReader.Open(dir);

    var searcher = new IndexSearcher(reader);

    string hints = searcher.Search(parsedQuery, 1).TotalHits.ToString();

    timer.Stop();

    TimeSpan timeTaken = timer.Elapsed;

    string duration = "Time: " + timeTaken.ToString(@"m\:ss\.fff");

    MessageBox.Show($"{duration} - {hints}");

Ответы (0 шт):