search engine cleanup
This commit is contained in:
parent
3f2899e97e
commit
3408b4637c
@ -18,18 +18,11 @@ namespace LibationSearchEngine
|
|||||||
{
|
{
|
||||||
public const Lucene.Net.Util.Version Version = Lucene.Net.Util.Version.LUCENE_30;
|
public const Lucene.Net.Util.Version Version = Lucene.Net.Util.Version.LUCENE_30;
|
||||||
|
|
||||||
// not customizable. don't move to config
|
|
||||||
private static string SearchEngineDirectory { get; }
|
|
||||||
= new System.IO.DirectoryInfo(Configuration.Instance.LibationFiles).CreateSubdirectory("SearchEngine").FullName;
|
|
||||||
|
|
||||||
public const string _ID_ = "_ID_";
|
public const string _ID_ = "_ID_";
|
||||||
public const string TAGS = "tags";
|
public const string TAGS = "tags";
|
||||||
// special field for each book which includes all major parts of the book's metadata. enables non-targetting searching
|
// special field for each book which includes all major parts of the book's metadata. enables non-targetting searching
|
||||||
public const string ALL = "all";
|
public const string ALL = "all";
|
||||||
|
|
||||||
// the workaround which allows displaying all books when query is empty
|
|
||||||
public const string ALL_QUERY = "*:*";
|
|
||||||
|
|
||||||
#region index rules
|
#region index rules
|
||||||
// common fields used in the "all" default search field
|
// common fields used in the "all" default search field
|
||||||
public const string ALL_AUDIBLE_PRODUCT_ID = nameof(Book.AudibleProductId);
|
public const string ALL_AUDIBLE_PRODUCT_ID = nameof(Book.AudibleProductId);
|
||||||
@ -124,7 +117,6 @@ namespace LibationSearchEngine
|
|||||||
[nameof(Book.IsAbridged)] = lb => lb.Book.IsAbridged,
|
[nameof(Book.IsAbridged)] = lb => lb.Book.IsAbridged,
|
||||||
["Abridged"] = lb => lb.Book.IsAbridged,
|
["Abridged"] = lb => lb.Book.IsAbridged,
|
||||||
|
|
||||||
// this will only be evaluated at time of re-index. ie: state of files moved later will be out of sync until next re-index
|
|
||||||
["IsLiberated"] = lb => isLiberated(lb.Book),
|
["IsLiberated"] = lb => isLiberated(lb.Book),
|
||||||
["Liberated"] = lb => isLiberated(lb.Book),
|
["Liberated"] = lb => isLiberated(lb.Book),
|
||||||
["LiberatedError"] = lb => liberatedError(lb.Book),
|
["LiberatedError"] = lb => liberatedError(lb.Book),
|
||||||
@ -184,18 +176,6 @@ namespace LibationSearchEngine
|
|||||||
foreach (var key in numberIndexRules.Keys)
|
foreach (var key in numberIndexRules.Keys)
|
||||||
yield return key;
|
yield return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<string> GetSearchFields()
|
|
||||||
{
|
|
||||||
foreach (var key in idIndexRules.Keys)
|
|
||||||
yield return key;
|
|
||||||
foreach (var key in stringIndexRules.Keys)
|
|
||||||
yield return key;
|
|
||||||
foreach (var key in boolIndexRules.Keys)
|
|
||||||
yield return key;
|
|
||||||
foreach (var key in numberIndexRules.Keys)
|
|
||||||
yield return key;
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region create and update index
|
#region create and update index
|
||||||
@ -333,6 +313,9 @@ namespace LibationSearchEngine
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
// the workaround which allows displaying all books when query is empty
|
||||||
|
public const string ALL_QUERY = "*:*";
|
||||||
|
|
||||||
#region search
|
#region search
|
||||||
public SearchResultSet Search(string searchString)
|
public SearchResultSet Search(string searchString)
|
||||||
{
|
{
|
||||||
@ -347,7 +330,7 @@ namespace LibationSearchEngine
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string FormatSearchQuery(string searchString)
|
internal static string FormatSearchQuery(string searchString)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(searchString))
|
if (string.IsNullOrWhiteSpace(searchString))
|
||||||
return ALL_QUERY;
|
return ALL_QUERY;
|
||||||
@ -493,5 +476,9 @@ namespace LibationSearchEngine
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private static Directory getIndex() => FSDirectory.Open(SearchEngineDirectory);
|
private static Directory getIndex() => FSDirectory.Open(SearchEngineDirectory);
|
||||||
|
|
||||||
|
// not customizable. don't move to config
|
||||||
|
private static string SearchEngineDirectory { get; }
|
||||||
|
= new System.IO.DirectoryInfo(Configuration.Instance.LibationFiles).CreateSubdirectory("SearchEngine").FullName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user