﻿USE [AIADatabaseV5]
GO
/****** Object:  StoredProcedure [dbo].[GetInDepthSearch]    Script Date: 2/1/2018 12:15:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================================
-- Author:		Magic
-- Create date: 08-Mar-2011
-- Description:	Get the result based on the keyword search
-- =============================================================


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetInDepthSearch]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[GetInDepthSearch]
GO

CREATE PROCEDURE [dbo].[GetInDepthSearch]
	-- Add the parameters for the stored procedure here
	@sSearchKeyword nvarchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT COUNT(DISTINCT InDepthWeightage.Keyword) AS hitcount, 
	SUM(InDepthWeightage.Relevancy) AS score, 
	InDepthMetadata.Title, InDepthMetadata.ProjectTypeId, 
	InDepthMetadata.GenContentId, InDepthMetadata.SubContent
	FROM InDepthMetadata
	INNER JOIN InDepthWeightage 
	ON InDepthMetadata.Id = InDepthWeightage.MetadataId
	WHERE InDepthMetadata.LexiconId = 1 
	AND InDepthWeightage.Keyword = @sSearchKeyword
	GROUP BY InDepthWeightage.Keyword, InDepthWeightage.Relevancy, InDepthMetadata.Title, 
	InDepthMetadata.ProjectTypeId, InDepthMetadata.GenContentId,InDepthMetadata.SubContent
	UNION
	SELECT 1 AS hitcount, 1 AS score, InDepthMetadata.Title, InDepthMetadata.ProjectTypeId, 
	InDepthMetadata.GenContentId, InDepthMetadata.SubContent
	FROM InDepthMetadata 
	WHERE (' ' + InDepthMetadata.Title+ ' ') LIKE '%'+ @sSearchKeyword +'%'
	AND InDepthMetadata.Id NOT IN 
	(SELECT InDepthWeightage.MetadataId FROM InDepthWeightage WHERE InDepthWeightage.Keyword = @sSearchKeyword)
	ORDER BY hitcount DESC, score DESC	
	
END

GO
