This commit is contained in:
@@ -201,7 +201,8 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(searchParameters.Phrase))
|
if (string.IsNullOrWhiteSpace(searchParameters.Phrase))
|
||||||
{
|
{
|
||||||
//TAGS ONLY SEARCH (NO PHRASE) ALL FULL MATCHES ARE INCLUSIVE
|
|
||||||
|
#region TAGS ONLY SEARCH (NO PHRASE) ALL FULL MATCHES ARE INCLUSIVE
|
||||||
Dictionary<long, long> TagCounts = new Dictionary<long, long>();
|
Dictionary<long, long> TagCounts = new Dictionary<long, long>();
|
||||||
|
|
||||||
//QUERY FOR ALL TAGMAPS THAT MATCH OBJECT TYPE AND ID FOR EVERY TAG SPECIFIED (UNION)
|
//QUERY FOR ALL TAGMAPS THAT MATCH OBJECT TYPE AND ID FOR EVERY TAG SPECIFIED (UNION)
|
||||||
@@ -243,7 +244,7 @@ namespace AyaNova.Biz
|
|||||||
if (TagId != ShortestMatchingTag)
|
if (TagId != ShortestMatchingTag)
|
||||||
{
|
{
|
||||||
//Ok, does this object have this tag?
|
//Ok, does this object have this tag?
|
||||||
bool HasTag = await ct.TagMap.Where(x => x.TagToObjectId == t.TagToObjectId && x.TagId == TagId).AnyAsync();
|
bool HasTag = await ct.TagMap.Where(x => x.TagToObjectId == t.TagToObjectId && x.TagToObjectType == t.TagToObjectType && x.TagId == TagId).AnyAsync();
|
||||||
if (HasTag)
|
if (HasTag)
|
||||||
matchCount++;
|
matchCount++;
|
||||||
}
|
}
|
||||||
@@ -255,17 +256,28 @@ namespace AyaNova.Biz
|
|||||||
MatchingObjects.Add(new AyaTypeId(t.TagToObjectType, t.TagToObjectId));
|
MatchingObjects.Add(new AyaTypeId(t.TagToObjectType, t.TagToObjectId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//It's a tags plus search phrase search so tags are exclusive
|
#region TAGS PLUS PHRASE SEARCH NONE MATCHING TAGS ARE EXCLUSIVE
|
||||||
//LOOP THROUGH SEARCHKEY MATCHES
|
//list to hold temporary matches
|
||||||
//FOREACH OBJECT SEARCH TAGMAP FOR MATCHING OBJECTTYPE AND ID
|
List<AyaTypeId> TagMatchingObjects = new List<AyaTypeId>();
|
||||||
|
|
||||||
|
//LOOP THROUGH MATCHING OBJECTS LIST
|
||||||
|
foreach (AyaTypeId i in MatchingObjects)
|
||||||
|
{
|
||||||
|
var matchCount = await ct.TagMap.Where(x => x.TagToObjectId == i.ObjectId && x.TagToObjectType == i.ObjectType && searchParameters.Tags.Contains(x.TagId)).LongCountAsync();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//FOREACH OBJECT SEARCH TAGMAP FOR MATCHING ALL TAGS FOR OBJECTTYPE AND ID
|
||||||
|
//IF NOT MATCH THEN REMOVE
|
||||||
//REMOVE RESULTS FROM SEARCH PHRASE PHASE THAT ARE NOT MATCHING
|
//REMOVE RESULTS FROM SEARCH PHRASE PHASE THAT ARE NOT MATCHING
|
||||||
//TODO: this
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user