dbo.GetEncyclopediaSearch.StoredProcedure.sql
4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
USE [AIADatabaseV5]
GO
/****** Object: StoredProcedure [dbo].[GetEncyclopediaSearch] Script Date: 2/1/2018 12:15:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================================
-- Author: Magic
-- Create date: 28-May-09
-- Description: Get the result based on the keyword search
-- =============================================================
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetEncyclopediaSearch]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[GetEncyclopediaSearch]
GO
CREATE PROCEDURE [dbo].[GetEncyclopediaSearch]
-- Add the parameters for the stored procedure here
@iLexiconId int, @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 EncyclopediaWeightage.Keyword) AS hitcount,
SUM(EncyclopediaWeightage.Relevancy) AS score,
EncyclopediaMetadata.Title, EncyclopediaMetadata.ProjectTypeId, EncyclopediaMetadata.GenContentId,
EncyclopediaMetadata.SubContent
FROM EncyclopediaMetadata
INNER JOIN EncyclopediaWeightage
ON EncyclopediaMetadata.Id = EncyclopediaWeightage.MetadataId
WHERE EncyclopediaMetadata.LexiconId = @iLexiconId
AND EncyclopediaWeightage.Keyword = @sSearchKeyword
GROUP BY EncyclopediaWeightage.Keyword, EncyclopediaWeightage.Relevancy, EncyclopediaMetadata.Title,
EncyclopediaMetadata.ProjectTypeId, EncyclopediaMetadata.GenContentId,EncyclopediaMetadata.SubContent
UNION
SELECT 1 AS hitcount, 1 AS score, EncyclopediaMetadata.Title, EncyclopediaMetadata.ProjectTypeId,
EncyclopediaMetadata.GenContentId, EncyclopediaMetadata.SubContent
FROM EncyclopediaMetadata WHERE (' ' + EncyclopediaMetadata.Title+ ' ') LIKE '%'+ @sSearchKeyword +'%'
AND EncyclopediaMetadata.Id NOT IN
(SELECT InDepthWeightage.MetadataId FROM InDepthWeightage WHERE InDepthWeightage.Keyword = @sSearchKeyword)
ORDER BY hitcount DESC, score DESC
END
GO