我会尝试什么
我在内容树中有很多人,我将为此创建一个新索引。这是为了在搜索特定人员时提高 Web 应用程序的性能。
创建索引
我在 Umbraco 7.7 的检查管理器中创建了一个新索引,命名PersonIndexer
为索引所有人员。这仅包括人员的节点类型。
为此,我编写了以下代码:
ExamineSettings.config
在→ →标签内的文件ExamineSettings.config
内:Examine
ExamineIndexProviders
providers
<add name="PersonsIndexer"
type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="false"
supportProtected="true"
indexSet="Persons"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>
在同一个文件中,我也添加了这个,但在Examine
→ ExamineSearchProviders
→providers
标签内:
<add name="PersonsSearcher"
type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
supportUnpublished="false"
supportProtected="true"
indexSet="Persons"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>
ExamineIndex.config
在标签内的文件ExamineIndex.config
内:ExamineLuceneIndexSets
<IndexSet SetName="Persons" IndexPath="~/App_Data/TEMP/ExamineIndexes/Persons/" >
<IndexAttributeFields>
<add Name="knowledge" />
<add Name="photo" />
<add Name="name"/>
<add Name="firstName"/>
<add Name="lastName"/>
</IndexAttributeFields>
<IncludeNodeTypes>
<add Name="person" />
</IncludeNodeTypes>
</IndexSet>
获取文件
当我建立这个索引时,它在索引中有 7 个文档。
我怎样才能在我的视图中获取所有这些文件。我试过这段代码:
var indexer = ExamineManager.Instance.IndexProviderCollection["PersonsIndexer"];
这给了我该索引的所有属性。
问题
这不是我需要的。所以我的问题是:如何从该索引中获取类型化的文档?
编辑
在@Marks 回答之后,我尝试了他的代码,但是当我观看时,searchResults
我得到了这个:
当我对 Lucene 进行搜索时*
,我得到了 7 个结果。
当我进行文本搜索 xor 我在空字符串上输入 xor lucene 搜索时,我什么都没有。