You may need to change the method in the Advanced Database Crawler to handle the GUIDs of templates passed in. The SearchParam
class has a property called TemplateIds
which by being plural indicates it should allow more than one. However, if you look into the code, this is how it is used:
templateIds = IdHelper.NormalizeGuid(templateIds);
The NormalizeGuid()
method actually only returns a single GUID. So I recommend you alter the ApplyTemplateFilter()
method here to return multiple Template GUIDs:
protected void ApplyTemplateFilter(CombinedQuery query, string templateIds, QueryOccurance occurance)
{
if (String.IsNullOrEmpty(templateIds)) return;
templateIds = IdHelper.NormalizeGuid(templateIds);
var fieldQuery = new FieldQuery(BuiltinFields.Template, templateIds);
query.Add(fieldQuery, occurance);
}
So change templateIds = IdHelper.NormalizeGuid(templateIds)
to handle multiple GUIDs, perhaps by splitting the input at a |
to get each GUID then normalizing each one of those and combining them again via a |
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…