У нас есть сильно настроенный сайт публикации SharePoint (WCM), который не использует веб-части, чтобы соответствовать рекомендациям XHTML и (AA) по доступности. Проблема в том, что функция поиска не генерирует статистику использования (отчеты об использовании в рамках администрирования поиска в SSP). Мы знаем, что это связано с нашими настройками, потому что у нас есть несколько сайтов групп OOTB в ферме, которые генерируют статистику поиска. Мы не уверены, где и как нам это исправить. Кажется, нам может понадобиться позвонить в веб-службу search.asmx, но я не уверен. Возможно, нам нужно вызвать что-то из SharePoint API как часть нашего вызова службы поиска? Я не уверен.
Кто-нибудь создал сильно настроенный сайт SharePoint (без веб-частей) и ведет журнал статистики поиска, можете ли вы прокомментировать, как вы это сделали? Или кто-нибудь может дать представление о том, как генерируется статистика?
Если это поможет, мы запускаем ферму среднего размера с 2 WFE, 1 сервером индексации и 1 сервером SQL Server. Все 32-разрядные версии Windows 2003 R2 SP2. MOSS 2007 SP1 (плюс декабрь CU) Enterprise Edition.
Спасибо, Джеймс.
P.S. этот вопрос ранее задавался в Stack Overflow (https://stackoverflow.com/questions/1432182/how-do-sharepoint-search-statistics-get-generated), но некоторые комментаторы рекомендовали переместить его сюда.
Насколько я знаю, запросы регистрируются путем вызова метода RecordClick поисковой веб-службы. Веб-часть Microsoft.Office.Server.Search.WebControls.SearchResultsBaseWebPart, которая используется для отображения результатов поиска, творит чудеса.
Когда страница, отображаемая SearchResultsBaseWebPart, загружается, функция регистрируется для события onlick всех элементов ссылки HTML, идентификатор которых соответствует фильтру RegExp. Событие выгрузки страницы также регистрируется для отправки запроса мыла, содержащего сериализованный объект Microsoft.Office.Server.Search.Query.QueryInfo, методу RecordClick веб-службы поиска. Затем свойства объекта QueryInfo сохраняются в базе данных поставщика службы общего доступа в таблицах MSSQLogUnprocessed и MSSQLogNonClickedUnprocessed.
Это единственная функция ведения журнала запросов, которую я нашел до сих пор. Если вы знаете или находите какие-либо другие зацепки, поделитесь ими.
Я собрал эту информацию, просмотрев различные классы в Reflector. Я надеюсь, что это помогает.
Возможно, это не тот ответ, который вы хотели бы услышать, но наш обходной путь заключался в том, чтобы разместить веб-части управления поиском (я думаю, нужен был только searchboxex) в один из заполнителей скрытого контента (в нашем случае ContentPlaceHolderId = PlaceHolderSearchArea)