Csharp/C#教程:我们可以在templateId中分配多个模板ID(就像我们在relatedId中那样),同时使用Lucene进行搜索?分享


我们可以在templateId中分配多个模板ID(就像我们在relatedId中那样),同时使用Lucene进行搜索?

我有五个复选框

如果用户选择Search All ,那么我们只需传递索引名称并获取结果,如果用户选择模板特定复选框之一,我们可以再次通过传递模板名称,但如果有两个模板中的任何一个复选框(或者可能是三)检查,然后?

我们可以管道分离templateID吗?

您可能需要更改高级数据库爬网程序中的方法来处理传入的模板的GUID SearchParam类有一个名为TemplateIds的属性,它通过复数表示它应该允许多个。 但是,如果您查看代码,这是它的使用方式:

 templateIds = IdHelper.NormalizeGuid(templateIds); 

NormalizeGuid()方法实际上只返回一个GUID 。 因此,我建议您在此处更改ApplyTemplateFilter()方法以返回多个模板GUID:

 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); } 

因此,更改templateIds = IdHelper.NormalizeGuid(templateIds)来处理多个GUID,可能是通过将输入拆分为| 获取每个GUID然后规范化每个GUID并通过|再次组合它们 。

继Mark所说的这可以通过使用以下function来实现:

上述就是C#学习教程:我们可以在templateId中分配多个模板ID(就像我们在relatedId中那样),同时使用Lucene进行搜索?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 protected void ApplyTemplateFilter(CombinedQuery query, string templateIds) { if (String.IsNullOrEmpty(templateIds)) return; var fieldQuery = new CombinedQuery(); var values = IdHelper.ParseId(templateIds); foreach (var value in values.Where(ID.IsID)) { AddFieldValueClause(fieldQuery, BuiltinFields.Template, value, QueryOccurance.Should); } query.Add(fieldQuery, QueryOccurance.Must); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1033842.html

(0)
上一篇 2022年1月18日
下一篇 2022年1月18日

精彩推荐