linq - Sitecore 自定义索引 - WARN 无法映射索引文档(字段:_uniqueid
问题描述
我已经使用 FlatDataCrawler 在 Sitecore 中创建了我的自定义索引。
索引已创建,我可以在 Solr 中查看我的文档。
问题是,每当我试图在我的代码中获取这些文档时,我都会看到如下异常:
Object reference not set to an instance of an object.
在 sitecore 日志文件中,我看到了这个警告:
ManagedPoolThread #4 14:29:09 INFO Solr Query - ?q=*:*&rows=1000000&fq=_indexname:(products_index)&wt=xml
ManagedPoolThread #4 14:29:09 WARN Could not map index document (field: _uniqueid; Value: fae308d2-233f-4f7f-a4fd-9d880e42ff13) - Object reference not set to an instance of an object.
这是我的索引配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:search="http://www.sitecore.net/xmlconfig/search/">
<sitecore role:require="Standalone or ContentManagement" search:require="solr">
<contentSearch>
<configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
<indexes hint="list:AddIndex">
<index id="products_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
<param desc="name">$(id)</param>
<param desc="core">$(id)</param>
<param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
<configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration">
<documentOptions type="Sitecore.ContentSearch.SolrProvider.SolrDocumentBuilderOptions, Sitecore.ContentSearch.SolrProvider">
<indexAllFields>false</indexAllFields>
</documentOptions>
</configuration>
<strategies hint="list:AddStrategy">
<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/manual" />
</strategies>
<locations hint="list:AddCrawler">
<crawler type="Feature.ProductsIndex.Crawlers.CustomOrderCrawler, Feature.ProductsIndex" />
</locations>
</index>
</indexes>
</configuration>
</contentSearch>
</sitecore>
</configuration>
这是我的代码:
using (var searchContext = ContentSearchManager.GetIndex("products_index").CreateSearchContext())
{
int count = searchContext.GetQueryable<SearchResultItem>().Count(); //This works
var results = searchContext.GetQueryable<SearchResultItem>().ToList(); //Exception here!
}
解决方案
看看你的模式文件,如果你有
<uniqueKey>_uniqueid</uniqueKey>
<field name="_uniqueid" type="string" indexed="true" required="true" stored="true"/>
如果不按照此链接填充 solr 架构,然后重新启动 solr 服务,然后尝试重建索引
推荐阅读
- sql - 如何获取SQL中日期最高的行集的行?
- arrays - 在 VBA 中动态声明数组
- java - ReleaseByteArrayElements 需要更多时间
- python - 如何以恒定帧速率处理视频帧?
- jquery - 在网站上动态点击 Youtube 订阅按钮
- excel - 如何在多个表中查找值并在值存在时更新单元格?
- python - 具有公共变量的分布式优化
- python - NetworkX - 有没有办法根据节点权重来缩放图中节点的位置?
- android - 出现错误:访问被拒绝在某些设备上查找属性“vendor.camera.aux.packagelist”
- ios - 启动新屏幕时使用 Swift 的 Xcode 中的线程错误