Индексирование и поиск url адреса
Как настроить анализатор для поиска выделенных слов в конкретных примерах, при помощи Lucene.Net?
Например:
- ecn.dev.virtualearth.net:443
- azwcus1-client-s.gateway.messenger.live.com:443
- 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}");