mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-30 01:35:32 +00:00
Implemented Fulltext search across tags and linebreaks for letters
This commit is contained in:
130
HaWeb/Search.cs
130
HaWeb/Search.cs
@@ -1,76 +1,76 @@
|
||||
namespace HaWeb;
|
||||
using HaDocument.Models;
|
||||
using HaDocument.Interfaces;
|
||||
using HaDocument.Comparers;
|
||||
using HaXMLReader.Interfaces;
|
||||
using HaWeb.Models;
|
||||
using HaXMLReader.EvArgs;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using System;
|
||||
// namespace HaWeb;
|
||||
// using HaDocument.Models;
|
||||
// using HaDocument.Interfaces;
|
||||
// using HaDocument.Comparers;
|
||||
// using HaXMLReader.Interfaces;
|
||||
// using HaWeb.Models;
|
||||
// using HaXMLReader.EvArgs;
|
||||
// using System.Collections.Concurrent;
|
||||
// using System.Collections.Generic;
|
||||
// using System.Collections.Immutable;
|
||||
// using System.Threading.Tasks;
|
||||
// using System.Linq;
|
||||
// using System;
|
||||
|
||||
internal class DocumentSearch {
|
||||
internal DocumentSearchResult _searchResult { get; }
|
||||
private IReader _reader { get; }
|
||||
private string _search { get; }
|
||||
// internal class DocumentSearch {
|
||||
// internal DocumentSearchResult _searchResult { get; }
|
||||
// private IReader _reader { get; }
|
||||
// private string _search { get; }
|
||||
|
||||
internal DocumentSearch(DocumentSearchResult res, IReader reader, string search) {
|
||||
_searchResult = res;
|
||||
_reader = reader;
|
||||
_search = search;
|
||||
_pg = "";
|
||||
}
|
||||
// internal DocumentSearch(DocumentSearchResult res, IReader reader, string search) {
|
||||
// _searchResult = res;
|
||||
// _reader = reader;
|
||||
// _search = search;
|
||||
// _pg = "";
|
||||
// }
|
||||
|
||||
internal DocumentSearchResult Act() {
|
||||
_reader.Text += OnText;
|
||||
_reader.SingleTag += OnSTag;
|
||||
_reader.Read();
|
||||
return _searchResult;
|
||||
}
|
||||
// internal DocumentSearchResult Act() {
|
||||
// _reader.Text += OnText;
|
||||
// _reader.SingleTag += OnSTag;
|
||||
// _reader.Read();
|
||||
// return _searchResult;
|
||||
// }
|
||||
|
||||
internal void OnText(object _, Text text) {
|
||||
if (text.Value.ToLower().Contains(_search.ToLower())) {
|
||||
_searchResult.Results.Add(new DocumentResult(text.Value, _pg, _ln));
|
||||
}
|
||||
}
|
||||
// internal void OnText(object _, Text text) {
|
||||
// if (text.Value.ToLower().Contains(_search.ToLower())) {
|
||||
// _searchResult.Results.Add(new DocumentResult(text.Value, _pg, _ln));
|
||||
// }
|
||||
// }
|
||||
|
||||
private string _pg;
|
||||
private string _ln;
|
||||
// private string _pg;
|
||||
// private string _ln;
|
||||
|
||||
internal void OnSTag(object _, Tag tag) {
|
||||
if (tag.Name == "page")
|
||||
_pg = tag["index"];
|
||||
else if (tag.Name == "line")
|
||||
_ln = tag["index"];
|
||||
}
|
||||
}
|
||||
// internal void OnSTag(object _, Tag tag) {
|
||||
// if (tag.Name == "page")
|
||||
// _pg = tag["index"];
|
||||
// else if (tag.Name == "line")
|
||||
// _ln = tag["index"];
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
internal class RegisterSearch {
|
||||
internal Comment _searchResult { get; }
|
||||
private IReader _reader { get; }
|
||||
private string _search { get; }
|
||||
private bool found;
|
||||
// internal class RegisterSearch {
|
||||
// internal Comment _searchResult { get; }
|
||||
// private IReader _reader { get; }
|
||||
// private string _search { get; }
|
||||
// private bool found;
|
||||
|
||||
internal RegisterSearch(Comment res, IReader reader, string search) {
|
||||
_searchResult = res;
|
||||
_reader = reader;
|
||||
_search = search;
|
||||
found = false;
|
||||
}
|
||||
// internal RegisterSearch(Comment res, IReader reader, string search) {
|
||||
// _searchResult = res;
|
||||
// _reader = reader;
|
||||
// _search = search;
|
||||
// found = false;
|
||||
// }
|
||||
|
||||
internal bool Act() {
|
||||
_reader.Text += OnText;
|
||||
_reader.Read();
|
||||
return found;
|
||||
}
|
||||
// internal bool Act() {
|
||||
// _reader.Text += OnText;
|
||||
// _reader.Read();
|
||||
// return found;
|
||||
// }
|
||||
|
||||
internal void OnText(object _, Text text) {
|
||||
if (text.Value.ToLower().Contains(_search.ToLower())) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// internal void OnText(object _, Text text) {
|
||||
// if (text.Value.ToLower().Contains(_search.ToLower())) {
|
||||
// found = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user