Как настроить отображение результатов поиска BDC?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/93620

  •  10-12-2019
  •  | 
  •  

Вопрос

Я добавил источник контента поиска для своего приложения BDC, и результаты заполняются правильно.Все идет нормально!Однако мне не очень нравится, как отображаются результаты.

Проблема 1:Названия результатов

Заголовком результата всегда является имя файла страницы профиля.Очевидно, что поскольку каждый элемент типа имеет одну и ту же страницу профиля, это бесполезно.Есть ли способ изменить то, что там отображается?В идеале это должна быть комбинация нескольких разных полей элемента, например «Имя + Фамилия».

Используя в качестве примера снимок экрана ниже, я хотел бы изменить ссылку Customer_1.aspx прямо над фрагментом контента.

Example SharePoint search result

Проблема 2:Текстовые фрагменты

Есть ли способ заставить результат поиска отображать определенные поля элемента?В этом примере для поиска контактов я, возможно, захочу сразу показать их номер телефона и адрес электронной почты, чтобы избавить пользователя от необходимости переходить по ссылке и ждать загрузки страницы профиля только для того, чтобы получить основную контактную информацию.

Обновлять:Тип результата

Я исследовал это большую часть дня и понял, что мне нужно создать тип результата для моего внешнего типа контента.Получив это, я смогу создавать собственные шаблоны отображения.Я пробовал это много раз, но мне все еще не удается заставить это работать.

Я создал управляемое свойство для одного из столбцов (ненулевое целое число, которое присутствует только в этом типе записи), но не нашел подходящего параметра сопоставления свойств.Какие-либо предложения?

enter image description here

Это было полезно?

Решение

Решение состоит в том, чтобы создать новый шаблон отображения, включающий поля BCS в качестве управляемых свойств.Вам необходимо добавить управляемые свойства в приложении службы поиска в разделе «Схема поиска», а затем выполнить полный обход.

Скопируйте существующий шаблон отображения, а затем добавьте управляемые свойства и логику рендеринга, чтобы он выглядел так, как вы хотите.

Вы можете следовать этому руководству: http://www.ableblue.com/blog/archive/2013/06/05/introduction-to-sharepoint-2013-display-templates/ Для отладки: http://www.ableblue.com/blog/archive/2014/03/01/create-a-diagnostic-display-template/

Для типа результата у вас есть несколько вариантов, вероятно, самый простой — создать источник результатов.Вы можете создать источник результатов, включающий только сущности из BCS.Результаты будут связаны с ContentType вашей сущности BCS.В моем случае BCSEntity — это «Клиент» (потому что в моей модели BCS есть объект Customer).Таким образом я создаю правило типа результата и применяю его к своему источнику результатов.Похоже, у вас будет что-то вроде ASICustomer.

Другой альтернативой является создание правила типа ASICustomerNumber contains "1,2,3,4,5,6,7,8,9,0"

Другие советы

Решение проблемы 1 (а может и 2 тоже)

Вы должны настроить хост страницы профиля внешнего типа контента, чтобы сделать это, вы можете следовать этому руководствуhttp://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/15/how-to-create-a-bcs-profile-page-in-sharepoint-2010.aspx

Я надеюсь, что это может вам помочь.

РЕ:Вопрос OP № 1: «Как вы отображаете управляемое свойство вместо поля заголовка (имя страницы профиля для BDC ECTS) в шаблоне дисплея?» (перефразированный).

Прочитав различные сообщения в блогах Мэтью и Беллы Энген на эту тему, я вижу два возможных решения.Я еще не реализовал ни один из них.

  1. Изменить Item_CommonItem_Body.html чтобы заменить вывод поля «Заголовок».Этот общий шаблон отображения вызывается из вашего шаблона отображения строкой _#=ctx.RenderBody(ctx)=#_
  2. Вставьте код из Item_CommonItem_Body.html в шаблон отображения, заменив строку _#=ctx.RenderBody(ctx)=#_

Для (1) в Item_CommonItem_Body.html изменить строку var titleHtml = String.format(...); для вывода желаемого управляемого свойства.Конечно, это влияет на многие шаблоны отображения в центре поиска.Возможно, это не то, чего вы хотите.

Для (2): если у вас есть несколько типов результатов, то есть несколько шаблонов отображения элементов, вам придется встроить код несколько раз.

Ни то, ни другое не является отличным решением.

Обратитесь к блогу Мэтью, начиная с Введение в шаблоны отображения SharePoint 2013 и серия блогов Беллы Как изменить способ отображения результатов поиска в SharePoint Server 2013

РЕ:сокращение вопроса № 1 ОП, я провел дополнительное исследование и нашел, что, вероятно, является предпочтительным решением для 80% случаев.Я оставил свой другой ответ на случай, если подробности будут полезны для остальных 20% случаев.

Напомним: «Как вы отображаете управляемое свойство вместо поля заголовка (имя страницы профиля для BDC ECTS) в шаблоне дисплея?» (перефразированный).

Отвечать:Для сценария BDC/поиска сопоставьте заголовок управляемого свойства со свойством для обхода, соответствующим нужному полю сущности.

  • Начните с перехода к приложению службы поиска.
  • Открыть схему поиска > Управляемые свойства
  • Фильтровать по свойствам, содержащим «Заголовок»
  • Отредактируйте свойство «Название»

enter image description here

  • Добавьте сопоставление к необходимым свойствам сканирования.

Если вам нужно свойство для обхода для совокупности полей сущности, вместо этого создайте составное поле для сущности, поскольку будет сопоставлено только одно значение свойства для обхода.

enter image description here

  • Повторное сканирование
  • Повторное сканирование

Я обнаружил, что управляемое свойство и результаты поиска (шаблон отображения) не отображали правильное значение из свойства для обхода только через пару обходов или несколько часов спустя.Не знаю почему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top