我如何使用Umbraco Lucene查询网站内容

时间:2014-10-27 09:19:50

标签: umbraco

我想开始使用" lucene "查询" Umbraco "内容, 什么是最简单的启动和运行方式 我尝试使用简易搜索" lucene wrapper",
它工作,但我没有从查询中获得任何结果, 我尝试从/ App_Data / TEMP中删除ExamineIndexes 但 Umbraco 不会创建新的 ExamineIndexes 文件
我使用的是Umbraco 7.1.8版 而c#
我试图查询检查索引:在前端

1 个答案:

答案 0 :(得分:1)

Examine是Umbraco的Lucene实施。

摘自Umbraco documentation,以下步骤可帮助您使用Examine和Umbraco进行搜索:

创建索引

要创建可搜索的索引,我们需要创建3个东西:索引器,搜索器和索引集。

  1. 打开〜/ Config / ExamineSettings.config并在' ExamineIndexProviders / providers'下添加一个索引器。 section(在本例中它被命名为ExternalIndexer):

    <add name="ExternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"/>

  2. 在同一个文件(〜/ Config / ExamineSettings.config)中,在&#39; ExamineSearchProviders / providers&#39;下添加一个搜索者。 section(在本例中,它名为ExternalSearcher):

    <add name="ExternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" />

  3. 在同一个文件中,我们会将默认搜索提供商更改为我们创建的提供商,设置defaultProvider="ExternalSearcher"

  4. 打开〜/ Config / ExamineIndex.config并添加一个索引集(在本例中名为ExternalIndexSet):

    <IndexSet SetName="ExternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/External/" />

  5. 我们使用Examine配置了可搜索的索引。检查将检测到索引在文件系统上不存在,因此索引将在应用程序启动期间重建。一旦发生这种情况,索引将自动与Umbraco中的数据保持同步。

    使用Razor搜索

    在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>
    }