From: Franck VILLAUME Date: Tue, 12 Jul 2011 12:35:41 +0000 (+0000) Subject: add search in data_words X-Git-Tag: v5_2_rc1~1103 X-Git-Url: https://scm.fusionforge.org/anonscm/gitweb?p=fusionforge%2Ffusionforge.git;a=commitdiff_plain;h=561a6e095ee8b1c67004fdbe0bcdf29b319cc769 add search in data_words --- diff --git a/src/common/search/DocsSearchQuery.class.php b/src/common/search/DocsSearchQuery.class.php index fd05b63e6a..90758c8f35 100644 --- a/src/common/search/DocsSearchQuery.class.php +++ b/src/common/search/DocsSearchQuery.class.php @@ -73,25 +73,21 @@ class DocsSearchQuery extends SearchQuery { 'SELECT doc_data.docid, doc_data.title, doc_data.description, doc_data.filename, doc_groups.groupname FROM doc_data, doc_groups WHERE doc_data.doc_group = doc_groups.doc_group AND doc_data.group_id = $1', array ($this->groupId)); if ($this->sections != SEARCH__ALL_SECTIONS) { - $qpa = db_construct_qpa($qpa, - 'AND doc_groups.doc_group = ANY ($1) ', + $qpa = db_construct_qpa($qpa, 'AND doc_groups.doc_group = ANY ($1) ', db_int_array_to_any_clause($this->sections)); } if ($this->showNonPublic) { - $qpa = db_construct_qpa($qpa, - ' AND doc_data.stateid IN (1, 4, 5)'); + $qpa = db_construct_qpa($qpa, ' AND doc_data.stateid IN (1, 4, 5)'); } else { - $qpa = db_construct_qpa($qpa, - ' AND doc_data.stateid = 1'); + $qpa = db_construct_qpa($qpa, ' AND doc_data.stateid = 1'); } - $qpa = db_construct_qpa($qpa, - ' AND (('); + $qpa = db_construct_qpa($qpa, ' AND (('); $qpa = $this->addIlikeCondition($qpa, 'title'); - $qpa = db_construct_qpa($qpa, - ') OR ('); + $qpa = db_construct_qpa($qpa, ') OR ('); $qpa = $this->addIlikeCondition($qpa, 'description'); - $qpa = db_construct_qpa($qpa, - ')) ORDER BY doc_groups.groupname, doc_data.docid'); + $qpa = db_construct_qpa($qpa, ') OR ('); + $qpa = $this->addIlikeCondition($qpa, 'data_words', $this->words); + $qpa = db_construct_qpa($qpa, ')) ORDER BY doc_groups.groupname, doc_data.docid'); } return $qpa; } @@ -108,16 +104,14 @@ class DocsSearchQuery extends SearchQuery { $qpa = db_construct_qpa($qpa, ' WHERE doc_data.doc_group = doc_groups.doc_group AND doc_data.docid = doc_data_idx.docid AND (vectors @@ q') ; if (count($this->phrases)) { - $qpa = db_construct_qpa($qpa, - $this->getOperator()); - $qpa = db_construct_qpa($qpa, - '('); + $qpa = db_construct_qpa($qpa, $this->getOperator()); + $qpa = db_construct_qpa($qpa, '('); $qpa = $this->addMatchCondition($qpa, 'title'); - $qpa = db_construct_qpa($qpa, - ') OR ('); + $qpa = db_construct_qpa($qpa, ') OR ('); $qpa = $this->addMatchCondition($qpa, 'description'); - $qpa = db_construct_qpa($qpa, - ')'); + $qpa = db_construct_qpa($qpa, ') OR ('); + $qpa = $this->addIlikeCondition($qpa, 'data_words', $this->words); + $qpa = db_construct_qpa($qpa, ')'); } $qpa = db_construct_qpa($qpa, ') AND doc_data.group_id = $1',