Как сделать отдельный универсальный поиск

Вы можете вставить универсальный поиск в любое место страницы, а также делать их несколько на сайте. Каждый из них будет обрабатываться одной и той же процедурой search, но при этом ей может передаваться разный typeID. При этом разные типы поисков могут делаться по разному набору объектов (т.е. как будет задано в sql-процедуре.)

Для размещения глобального поиска используем подобную верстку: 

<select class="form-control  as-select-search hide" data-url="/controls/search/search" data-itemid="100" data-minlength="1" data-delay="1000">
  <option value="0">Поиск по документации...</option>
</select>

data-itemID задает @typeID в процедуре falcon_search.

Вы также можете установить задержку поиска при наборе с клавиатуры через атрибут data-delay и минимальное количество символов для поиска через атрибут data-minlength. 

В процедуре поиска вы можете обработать следующим образом: 

CREATE PROCEDURE [dbo].[falcon_search]
   @q nvarchar(256),
   @typeID int,
  @page nvarchar(256) = '',
  @username nvarchar(256)
AS
BEGIN

	CREATE TABLE dbo.#result (id int, [text] nvarchar(max), [desc] nvarchar(max),[type] nvarchar(256),
	[date] date)

    if(@typeID=100) begin
      -- работа отдельного поиска
       insert into #result
       select top 15 id,
       		  ' '+title+'',
              'Обновил: ' + updatedBy + ' ' + convert(nvarchar,isnull(updated,'2020-01-01'),104) + ' ' + LEFT(convert(nvarchar, isnull(updated,'2020-01-01'),108),5),
              '',
              getdate()
       from kb_articles where isPublish=1 and ( (title like '%'+@q+'%') or (text like '%'+@q+'%') )
       order by id desc

       select * from #result
		drop table #result
        return
    end

    -- остальные поиски ....


END

Пример работы данного поиска есть в базе знаний (справа вверху). 

Страница-источник на сайте falconspace.ru