Sitecore GetQueryable Filter not returning any result for SOLR after switch from Lucene

丶灬走出姿态 提交于 2019-12-12 19:23:25

问题


I'm in process of switching the Sitecore Lucene Search provider to Solr. Cores have been configured and I can rebuild all the COREs with no problem.

I also updated the computed index fields per Solr mapping requirements. However, for weird reason the query below isn't returning any results.

using (var context = index.CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
            {

                var query = context.GetQueryable<ArticleSearchResultItem>().Filter(item => item.Category == categoryId);

                var results = query.GetResults();
}

But when I do this I can match the categoryid i.e. I can hit inside if condition.

using (var context = index.CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck))
            {
                var query1 = context.GetQueryable<ArticleSearchResultItem>();
                foreach (var q in query1)
                {
                    if (q.Category == categoryId)
                    {
                        //Matched Category ID
                    }
                }

}

The second test above confirms that:

  1. I am getting data from SOLR
  2. And the result has matching categoryId

But I just don't understand why the first one doesn't match it!!

Will appreciate if you could review my POCO and field mapping below:

Field Mapping:

<fields hint="raw:AddComputedIndexField">
              field fieldName="articlecategory" returnType="string">MyNameSpace.ComputedFields.ArticleCategoryField, MyNameSpace.Business</field>
              ....

POCO:

public class ArticleSearchResultItem : BaseSearchItem
    {
        [IndexField("articlecategory")]
        [TypeConverter(typeof(IndexFieldIDValueConverter))]
        public ID Category { get; set; }
        }

Noticed below on Search.log

23732 2016:01:23 22:49:46 INFO Serialized Query - ?q=articlecategory_s:(e83405719a5c4ff18595d685c9103e0f)&rows=2147483647&fl=*,score&fq=_indexname:(sitecore_web_index)

Tried copy paste the query below on to Solr Admin, nothing gets returned.

?q=articlecategory_s:(e83405719a5c4ff18595d685c9103e0f)&rows=2147483647&fl=*,score&fq=_indexname:(sitecore_web_index)

回答1:


Managed to resolve this issue..

The issue was that computed index field had a logic where ID was converted to short guid.

I removed this line and re-indexed and started getting data from SOLR.



来源:https://stackoverflow.com/questions/34960240/sitecore-getqueryable-filter-not-returning-any-result-for-solr-after-switch-from

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!