Sitecore 6.6 웹 사이트에 검색 색인을 추가했습니다. 테스트를 위해 색인 매개 변수와 일치하는 두 개의 항목을 만들었습니다. 즉, 색인 된 단일 템플릿을 사용합니다.Sitecore 6.6 Lucene 검색 - Guid 값을 검색 할 수 없습니다.
이 템플릿에는 "스토리 데이터 항목"이라는 DropLink 필드가 있으며,이 필드의 값이 제공된 Guid와 일치하는 모든 항목을 반환합니다.
다음 코드는 모든 인덱싱 된 문서를 반환하고 실행하면 인덱싱 된 것을 나타내는 두 항목이 모두 반환됩니다. 나는 지금까지 내가 이해가 같은 가이 드의 관련 필드를 검색해야 다음에 쿼리를 변경하는 경우 items.First().Fields["Story Data Item"].Value == "{3F810A26-5D57-49CA-8D16-8BE4FDA404E2}"
Index indx = SearchManager.GetIndex("hos");
IEnumerable<Item> items = new List<Item>();
Sitecore.Search.SearchResultCollection results;
using (IndexSearchContext searchContext = indx.CreateSearchContext())
{
SearchHits hits = searchContext.Search(new Lucene.Net.Search.MatchAllDocsQuery(), int.MaxValue);
results = hits.FetchResults(0, hits.Length);
}
items = results.Select(result => result.GetObject<Item>()).Where(item => item != null).ToArray();
, 나는 어떤 결과를 얻을 수 없습니다 : 또한, 첫 번째 항목이 조건을 충족합니다. 나는 이해하지 못한다. 나는 케이스가 낮추고 Guid가 ShortID로 변환되었는지 확인하는 것에 대한 모든 조언을 따랐습니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 다음과 같이
Index indx = SearchManager.GetIndex("hos");
IEnumerable<Item> items = new List<Item>();
Sitecore.Search.SearchResultCollection results;
using (IndexSearchContext searchContext = indx.CreateSearchContext())
{
FieldQuery fldQuery = new FieldQuery("Story Data Item".ToLowerInvariant(), ShortID.Encode(new Guid("{3F810A26-5D57-49CA-8D16-8BE4FDA404E2}")).ToLowerInvariant());
SearchHits hits = searchContext.Search(fldQuery, int.MaxValue);
results = hits.FetchResults(0, hits.Length);
}
items = results.Select(result => result.GetObject<Item>()).Where(item => item != null).ToArray();
인덱스가 구성됩니다
<index id="hos" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">__hos</param>
<Analyzer ref="search/analyzer" />
<locations hint="list:AddCrawler">
<master type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
<Database>master</Database>
<Tags>master hos</Tags>
<Root>/sitecore/content/Home/my_root</Root>
<include hint="list:IncludeTemplate">
<story>{AB3023C3-331D-4DD0-86B2-F8F48E1287EC}</story>
</include>
<Boost>2.0</Boost>
</master>
<master type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
<Database>web</Database>
<Tags>web hos</Tags>
<Root>/sitecore/content/Home/my_root</Root>
<include hint="list:IncludeTemplate">
<story>{AB3023C3-331D-4DD0-86B2-F8F48E1287EC}</story>
</include>
<Boost>2.0</Boost>
</master>
</locations>
</index>
내가 여기 조언을 따랐다 - droplink and treelist values in sitecore search-BooleanQuery
하지만 차를 이용에 관한.
또한, 누가는 인덱스가 원하는 데이터를 보유 확인 :
모두 크게 감사합니다 도움이됩니다.