我想开始使用" lucene "查询" Umbraco "内容,
什么是最简单的启动和运行方式
我尝试使用简易搜索" lucene wrapper",
它工作,但我没有从查询中获得任何结果,
我尝试从/ App_Data / TEMP中删除ExamineIndexes
但 Umbraco 不会创建新的 ExamineIndexes 文件
我使用的是Umbraco 7.1.8版
而c#
我试图查询检查索引:在前端
答案 0 :(得分:1)
Examine
是Umbraco的Lucene
实施。
摘自Umbraco documentation,以下步骤可帮助您使用Examine
和Umbraco进行搜索:
要创建可搜索的索引,我们需要创建3个东西:索引器,搜索器和索引集。
打开〜/ Config / ExamineSettings.config并在' ExamineIndexProviders / providers'下添加一个索引器。 section(在本例中它被命名为ExternalIndexer):
<add name="ExternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"/>
在同一个文件(〜/ Config / ExamineSettings.config)中,在&#39; ExamineSearchProviders / providers&#39;下添加一个搜索者。 section(在本例中,它名为ExternalSearcher):
<add name="ExternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" />
在同一个文件中,我们会将默认搜索提供商更改为我们创建的提供商,设置defaultProvider="ExternalSearcher"
打开〜/ Config / ExamineIndex.config并添加一个索引集(在本例中名为ExternalIndexSet
):
<IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/External/" />
我们使用Examine配置了可搜索的索引。检查将检测到索引在文件系统上不存在,因此索引将在应用程序启动期间重建。一旦发生这种情况,索引将自动与Umbraco中的数据保持同步。
在razor宏中,Search
模型上的DynamicNode
方法会返回DynamicNodeList
:
@if (!string.IsNullOrEmpty(Request.QueryString["query"]))
{
<ul>
@foreach (var result in Umbraco.Search(Request.QueryString["query"]))
{
<li>
<a href="@result.Url">@result.Name</a>
</li>
}
</ul>
}