У меня есть ведро предметов с более чем 30 000 предметов внутри. Мне нужно быстро найти элементы, которые имеют определенное поле, определенное для определенного значения, или даже лучше сделать что-то вроде инструкции SELECT WHERE fieldValue IN (1,2,3,4). Есть ли готовые решения? Я искал в Интернете, и единственное, что я нашел, это «Руководство разработчика по позиции Ковши и поиск», но примеров кода нет.Sitecore HOWTO: Элемент поиска для предметов с определенными значениями
ответ
Использования Sitecore редактора содержимого:
Перейти к пункту ковша затем в закладке поиска начните вводить следующее (замените имя_поль и значение с фактическим именем поля и значением):
обычая: fieldname | значение
Затем нажмите enter, вы увидите результат запроса, вы можете сразу несколько запросов, если хотите.
Использование Sitecore Content Search API:
using Sitecore.ContentSearch;
using Sitecore.ContentSearch.Linq;
using Sitecore.ContentSearch.SearchTypes;
using Sitecore.ContentSearch.Linq.Utilities
ID bucketItemID = "GUID of your bucket item";
ID templateID = "Guid of your item's template under bucket";
string values = "1,2,3,4,5";
using (var context = ContentSearchManager.GetIndex("sitecore_web_index").CreateSearchContext())
{
var predicate = PredicateBuilder.True<SearchResultItem>();
predicate = PredicateBuilder.And(item => item.TemplateId == new ID(templateID)
&& item.Paths.Contains(bucketItemID));
var innerPredicate = PredicateBuilder.False<SearchResultItem>();
foreach(string val in values.Split(','))
{
innerPredicate = PredicateBuilder.False<SearchResultItem>();
innerPredicate = innerPredicate.Or(item => item["FIELDNAME"] == val);
}
predicate = predicate.And(innerPredicate);
var result = predicate.GetResults();
List<Item> ResultsItems = new List<Item>();
foreach (var hit in result.Hits)
{
Item item = hit.Document.GetItem();
if(item !=null)
{
ResultsItems .Add(item);
}
}
}
Следующие ссылки могут дать хороший старт с API поиска:
- http://www.fusionworkshop.co.uk/news-and-insight/tech-lab/sitecore-7-search-a-quickstart-guide#.VPw8AC4kWnI
- https://www.sitecore.net/learn/blogs/technical-blogs/sitecore-7-development-team/posts/2013/06/sitecore-7-poco-explained.aspx
- https://www.sitecore.net/learn/blogs/technical-blogs/sitecore-7-development-team/posts/2013/05/sitecore-7-predicate-builder.aspx
Надеюсь, это поможет!
Вам нужно что-то вроде этого. Элемент Bucket является IIndexable, поэтому его можно искать с помощью API поиска Sitecore 7.
Этот фрагмент кода ниже может быть легко адаптирован для удовлетворения ваших потребностей, и это всего лишь вопрос модификации предложения where. Если вам нужна дополнительная помощь с синтаксисом sitecore 7, просто напишите комментарий к сообщению блога QuickStart ниже, и я «Вернемся к вам.
var bucketItem = Sitecore.Context.Database.GetItem(bucketPath);
if (bucketItem != null && BucketManager.IsBucket(bucketItem))
{
using (var searchContext = ContentSearchManager.GetIndex(bucketItem as IIndexable).CreateSearchContext())
{
var result = searchContext.GetQueryable<SearchResultItem().Where(x => x.Name == itemName).FirstOrDefault();
if(result != null)
Context.Item = result.GetItem();
}
}
Дальнейшее чтение на моем блоге здесь:
http://coreblimey.azurewebsites.net/sitecore-7-search-quick-start-guide/
- 1. Sitecore Droptree не исключает предметов
- 2. MySQL Для каждого условия с определенными значениями
- 3. Как изменить для цикла с определенными значениями
- 4. Фильтр с определенными значениями для данных datatable
- 5. jQuery слайдер с определенными значениями
- 6. удалить флажки с определенными значениями
- 7. Solr для префикса поиска, howto?
- 8. Генерирующий массив с определенными значениями
- 9. Как сортировать с определенными значениями?
- 10. Определить интервалы с определенными значениями
- 11. Ячейка только с определенными значениями
- 12. Найти элемент по ошибке xpath с определенными значениями
- 13. , чтобы элемент был зафиксирован с определенными значениями scrollY на странице
- 14. SQL, определяющий определенное поле с определенными значениями
- 15. Sitecore - Поиск по страницам Vs Поиск предметов
- 16. Sitecore Glass Mapper - Использование визуализации предметов
- 17. Запрос Sql для поиска замещающих предметов
- 18. Блокировка PostgreSQL INSERTS с определенными значениями?
- 19. Подсчитайте количество строк с определенными значениями
- 20. Display проблема с определенными значениями в рельсах
- 21. столбцам с определенными значениями (и заменить)
- 22. Конструктор объектов C# с определенными значениями
- 23. EXCEL: Как объединить ячейки с определенными значениями
- 24. Оператор if работает только с определенными значениями
- 25. Попадая индексы элементов массива с определенными значениями
- 26. Заполните ячейки между определенными значениями
- 27. Модель Django: запрещать состояния с определенными значениями
- 28. Как заполнить трехмерный массив с определенными значениями
- 29. Создания перечислений с определенными значениями/хранимых свойствами
- 30. Doctrine2 query orderBy с определенными значениями сначала
Как вы можете видеть, вы можете с помощью ответа ниже вы можете использовать Sitecore 7 API. Ссылки быстрого запуска руководства были написаны мной, поэтому я был бы признателен, если бы учесть это при маркировке ответа. Надеюсь, это решит вашу проблему. –