Commit 9ae84db179f081511eef8269b816c56f2681a129
1 parent
49a9d389
Use IN BOOLEAN MODE for the search, allowing us to overcome some issues
on low document volumes for searching. git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3282 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
12 additions
and
6 deletions
presentation/lookAndFeel/knowledgeTree/search/standardSearchUI.inc
| ... | ... | @@ -36,14 +36,16 @@ function getMessage() { |
| 36 | 36 | function getSearchResultsByCategory($iFolderID, $sKeywords, $iStartIndex, $sCategory) { |
| 37 | 37 | global $default; |
| 38 | 38 | |
| 39 | - /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id AS folder_id, D.id AS document_id, D.name AS document_name, ROUND(MATCH(DT.document_text) AGAINST (?),3) AS score " . | |
| 39 | + /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, " . | |
| 40 | + "F.id AS folder_id, D.id AS document_id, D.name AS document_name, " . | |
| 41 | + "ROUND(MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE) OR 1, 3) AS score " . | |
| 40 | 42 | "FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " . |
| 41 | 43 | "INNER JOIN $default->document_fields_link_table AS DFL ON DT.document_id=DFL.document_id " . |
| 42 | 44 | "INNER JOIN $default->document_fields_table AS DF ON DF.id = DFL.document_field_id " . |
| 43 | 45 | "INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " . |
| 44 | 46 | "INNER JOIN $default->folders_table AS F on F.ID = D.folder_id " . |
| 45 | 47 | "INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " . |
| 46 | - "WHERE MATCH(DT.document_text) AGAINST (?) " . | |
| 48 | + "WHERE MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE) " . | |
| 47 | 49 | "AND (F.is_public OR SDUL.user_id = ?) " . |
| 48 | 50 | "AND SL.name='Live' "; |
| 49 | 51 | $aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]); |
| ... | ... | @@ -75,12 +77,14 @@ function getSearchResultsByCategory($iFolderID, $sKeywords, $iStartIndex, $sCate |
| 75 | 77 | |
| 76 | 78 | function getSearchResultsByDocumentType($iFolderID, $sKeywords, $iStartIndex, $iDocTypeID) { |
| 77 | 79 | global $default; |
| 78 | - /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id AS folder_id, D.id AS document_id, D.name AS document_name, ROUND(MATCH(DT.document_text) AGAINST (?),3) AS score " . | |
| 80 | + /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, " . | |
| 81 | + "F.id AS folder_id, D.id AS document_id, D.name AS document_name, " . | |
| 82 | + "ROUND(MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE),3) AS score " . | |
| 79 | 83 | "FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " . |
| 80 | 84 | "INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " . |
| 81 | 85 | "INNER JOIN $default->folders_table AS F on F.ID = D.folder_id " . |
| 82 | 86 | "INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " . |
| 83 | - "WHERE MATCH(DT.document_text) AGAINST (?) " . | |
| 87 | + "WHERE MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE) " . | |
| 84 | 88 | "AND (F.is_public OR SDUL.user_id = ?) "; |
| 85 | 89 | $aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]); |
| 86 | 90 | if (isset($iDocTypeID)) { |
| ... | ... | @@ -112,12 +116,14 @@ function getSearchResultsByDocumentType($iFolderID, $sKeywords, $iStartIndex, $i |
| 112 | 116 | |
| 113 | 117 | function getSeachResultsByFolder($iFolderID, $iStartIndex, $sKeywords) { |
| 114 | 118 | global $default; |
| 115 | - /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id AS folder_id, D.id AS document_id, D.name AS document_name, ROUND(MATCH(DT.document_text) AGAINST (?),3) AS score " . | |
| 119 | + /*ok*/ $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, " . | |
| 120 | + "F.id AS folder_id, D.id AS document_id, D.name AS document_name, " . | |
| 121 | + "ROUND(MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE),3) AS score " . | |
| 116 | 122 | "FROM $default->documents_table AS D INNER JOIN $default->document_text_table AS DT ON D.id = DT.document_id " . |
| 117 | 123 | "INNER JOIN $default->status_table AS SL ON D.status_id = SL.id " . |
| 118 | 124 | "INNER JOIN $default->folders_table AS F on F.ID = D.folder_id " . |
| 119 | 125 | "INNER JOIN $default->search_permissions_table AS SDUL ON SDUL.document_id = D.id " . |
| 120 | - "WHERE MATCH(DT.document_text) AGAINST (?) " . | |
| 126 | + "WHERE MATCH(DT.document_text) AGAINST (? IN BOOLEAN MODE) " . | |
| 121 | 127 | "AND (F.is_public OR SDUL.user_id = ?) " . |
| 122 | 128 | "AND SL.name='Live' "; |
| 123 | 129 | $aParams = array($sKeywords, $sKeywords, $_SESSION["userID"]); | ... | ... |