我有一个类似字典的页面。我使用Umbraco生成页面中的单词,每个单词都有一个描述。它是营养词,所以它就像'盐','维生素B12'等。现在,我必须创建一个搜索栏,搜索这些词并返回结果,我需要它是模糊的。我不需要每次使用Umbraco,但到目前为止,我正在使用MVC和剃刀进行项目。我不知道如何让它搜索页面。
<div class="row">
@foreach (var item in Model.Content.Descendants("lekseisDiatrofikouLeksikou"))
{
<div class="col-sm-3 styled">
<button data-id="@id" type="button" class="btn">
@(item.GetPropertyValue<string>("leksi"))
</button>
<div id="@("button-wrapper"+id)" class="col-xs-12 styled2 text-center nopadding">
@Html.Raw(item.GetPropertyValue<string>("perigrafiLeksis"))
</div>
</div>
id++;
}
</div>
这是我用来生成字典中单词的循环。这会为每个单词生成一个bootstrap col-sm-3。我根本不知道如何搜索这些单词。我应该在HTML中搜索DOM树吗?
答案 0 :(得分:2)
没有!绝对:)在Umbraco中,您可以使用Examine / Lucene索引来实现快速简便的搜索功能。它使搜索变得更容易。您仍然可以在页面后代中执行此操作,但在这种情况下检查会更好。
在此处查看简介和详细信息:https://our.umbraco.org/documentation/reference/searching/examine/然后转到https://our.umbraco.org/documentation/reference/searching/examine/overview-explanation以检查如何使用Fluent API并构建查询,您只能在其中搜索你感兴趣。
看起来像这样:
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var searchCriteria = ExamineManager.Instance.CreateSearchCriteria();
var valuesToSearch = new string[] { "salt", "vitamin" };
searchCriteria.NodeTypeAlias("AliasOfYourDictionaryItemDocumentType");
searchCriteria.GroupedOr(new List<string>() { "propertyAliasInWhichWeWantToSearch" }, valuesToSearch);
var results = umbracoHelper.TypedSearch(searchCriteria);
您将拥有从索引搜索返回的项目列表。它没有经过测试,但希望能够帮助您找到正确的方向。快乐的编码!