Sitecore CMS를 사용하여 상속 한 응용 프로그램이 있습니다. 우리는 최근 Sitecore를 업그레이드하여 Lucene.Net의 최신 버전을 사용해야했습니다. 우리 옛날 코드 중 일부가 망가졌습니다. 문제는 코드가 무엇을하려했는지 알 수 없다는 것입니다. Lucene 쿼리에 익숙하지 않습니다. 특히, RangeQueries가 TermRangeQueries가되어야한다는 것을 알고 있지만 BooleanQuery에 대한 대안을 찾을 수 없어 TermRangeQuery를 입력으로 받아 들일 수 없기 때문에이 코드를 다시 작성하면 어려워졌습니다. .Lucene의 새 버전으로 마이그레이션 할 때 RangeQuery를 사용하는 BooleanQuery를 어떻게 변환 할 수 있습니까?
BooleanQuery lQuery = new BooleanQuery();
lQuery.Add(new TermQuery(new Term("_shorttemplateid", string.Format("{0}", ShortID.Encode(templateId).ToLowerInvariant()))),
Lucene.Net.Search.Occur.MUST);
if (string.IsNullOrEmpty(endDateItemFieldName))
{
lQuery.Add(
new RangeQuery(
new Term(startDateItemFieldName, startDateTime),
new Term(startDateItemFieldName, endDateTime), true),
Lucene.Net.Search.Occur.MUST);
}
else
{
lQuery.Add(
new RangeQuery(
new Term(startDateItemFieldName, startDate.ToString(DATE_TIME_FORMAT)),
new Term(startDateItemFieldName, string.Format("{0}{1}", endDate.ToString("yyyyMMdd"), endTimeStamp)), true),
Lucene.Net.Search.Occur.SHOULD);
lQuery.Add(
new RangeQuery(
new Term(endDateItemFieldName, startDate.ToString(DATE_TIME_FORMAT)),
new Term(endDateItemFieldName, string.Format("{0}{1}", endDate.ToString("yyyyMMdd"), endTimeStamp)), true),
Lucene.Net.Search.Occur.MUST);
}
Sitecore의 어떤 버전이로 업그레이드 했습니까? –
우리는 6.6에서 7.2로 갈 것입니다. – hushidh