2012-12-20 2 views
2

Есть ли способ, по которому я могу искать вложения и показывать приложенные документы в результатах поиска? В моем результате поиска должны отображаться только вложения, в которых содержится текст поиска. Прямо сейчас я могу искать вложения и страницу, на которой отображается вложенный текст поиска. Скажем, у меня есть страница и приложение myattachment.docx в качестве приложения. При поиске в качестве поискового текста в поиске по сайту, который содержится только в файле myattachment.docx (не на домашней странице), результат поиска показывает домашнюю страницу как результат поиска. То, что я намереваюсь, заключается в возвращении чего-то вроде Home/myattachment.docx в результате вместо Домашней страницы. Моя страница может содержать любое количество вложений.Полнотекстовый поиск в Приложенные документы в Kentico CMS 7

Спасибо заранее!

ответ

0

Информация об этом немногочисленна эскиз. См. Ниже документацию, которую я использовал.

Создайте собственный глобальный обработчик событий в AppCode (или Old_App_Code), убедитесь, что это частичный класс CMSModule Loader.

Добавить свой собственный обработчик событий в override Init() Тот, который вы хотите, это DocumentEvents.GetContent.Execute.

Объект отправителя должен быть текущим TreeNode индексироваться для поиска. Затем вы можете использовать этот узел для доступа к соответствующим вложениям и изменения событий args e.content, чтобы добавить текст вашего документа в поиск.

[CustomDocumentEvents] 
public partial class CMSModuleLoader 
{ 
    private class CustomDocumentEventsAttribute : CMSLoaderAttribute 
    { 
     public override void Init() 
     { 
      // Assigns custom handlers to the appropriate events 
      DocumentEvents.GetContent.Execute += Document_GetContent; 
     } 

     private void Document_GetContent(object sender, DocumentEventArgs e) 
     { 
      TreeNode node = sender as TreeNode; 
      if (node != null) 
      { 
       //Note, this is psuedo code, this isnt the way to iterate over TreeNode.Attachments 
       foreach(attachment in node.Attachments) { 
        e.Content += attachment.content; 
       } 
      } 
     } 

    } 
} 

Подробнее

См http://devnet.kentico.com/docs/devguide/index.html?event_handlers_overview.htm для реализации пользовательских событий в целом в версии 7.

Смотреть это для пользовательского поиска в версии 5 http://devnet.kentico.com/Knowledge-Base/Search/How-to-search-for-documents-using-assigned-categor.aspx

См http://devnet.kentico.com/Knowledge-Base/API-and-Internals/Custom-Handler-Library-compatibility.aspx для обновленного названия события для версии 7, указанной в примере пользовательского поиска версии 5.