diff options
author | Maxence Lange <maxence@artificial-owl.com> | 2019-07-14 19:07:28 -0100 |
---|---|---|
committer | Maxence Lange <maxence@artificial-owl.com> | 2019-07-14 19:07:28 -0100 |
commit | 1e2518d7f9d057503c1d77c8553adc34433f1f43 (patch) | |
tree | 27c6b5ed13a3a04d5539ea897aafa233190445bf /lib/public/FullTextSearch | |
parent | b3249f931b4b73e33c46a145a660e5f3fcbcd7e1 (diff) | |
download | nextcloud-server-1e2518d7f9d057503c1d77c8553adc34433f1f43.tar.gz nextcloud-server-1e2518d7f9d057503c1d77c8553adc34433f1f43.zip |
new model to manage some simple queries
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
fixing issue in addSubTag()
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
fix const
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
autoload
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Revert "fixing issue in addSubTag()"
This reverts commit a9ab2ab91b98133c69272f27ea1b51594719e241.
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
syntax
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Diffstat (limited to 'lib/public/FullTextSearch')
-rw-r--r-- | lib/public/FullTextSearch/Model/ISearchRequest.php | 20 | ||||
-rw-r--r-- | lib/public/FullTextSearch/Model/ISearchRequestSimpleQuery.php | 137 |
2 files changed, 157 insertions, 0 deletions
diff --git a/lib/public/FullTextSearch/Model/ISearchRequest.php b/lib/public/FullTextSearch/Model/ISearchRequest.php index 073b4805f63..c7e96913018 100644 --- a/lib/public/FullTextSearch/Model/ISearchRequest.php +++ b/lib/public/FullTextSearch/Model/ISearchRequest.php @@ -322,5 +322,25 @@ interface ISearchRequest { public function getFields(): array; + + /** + * Add a MUST search on an extra field + * + * @param ISearchRequestSimpleQuery $query + * + * @return ISearchRequest + * @since 17.0.0 + */ + public function addSimpleQuery(ISearchRequestSimpleQuery $query): ISearchRequest; + + + /** + * Get the list of queries on extra field. + * + * @return ISearchRequestSimpleQuery[] + * @since 17.0.0 + */ + public function getSimpleQueries(): array; + } diff --git a/lib/public/FullTextSearch/Model/ISearchRequestSimpleQuery.php b/lib/public/FullTextSearch/Model/ISearchRequestSimpleQuery.php new file mode 100644 index 00000000000..fb390f8fff1 --- /dev/null +++ b/lib/public/FullTextSearch/Model/ISearchRequestSimpleQuery.php @@ -0,0 +1,137 @@ +<?php +declare(strict_types=1); + + +/** + * FullTextSearch - Full text search framework for Nextcloud + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Maxence Lange <maxence@artificial-owl.com> + * @copyright 2018 + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCP\FullTextSearch\Model; + + +/** + * Interface ISearchRequestSimpleQuery + * + * Add a Query during a Search Request... + * - on a specific field, + * - using a specific value, + * - with a specific comparison + * + * @since 17.0.0 + * + * @package OCP\FullTextSearch\Model + */ +interface ISearchRequestSimpleQuery { + + + const COMPARE_TYPE_TEXT = 1; + const COMPARE_TYPE_KEYWORD = 2; + const COMPARE_TYPE_INT_EQ = 3; + const COMPARE_TYPE_INT_GTE = 4; + const COMPARE_TYPE_INT_GT = 5; + const COMPARE_TYPE_INT_LTE = 6; + const COMPARE_TYPE_INT_LT = 7; + const COMPARE_TYPE_BOOL = 8; + const COMPARE_TYPE_ARRAY = 9; + + + /** + * Get the compare type of the query + * + * @return int + * @since 17.0.0 + */ + public function getType(): int; + + + /** + * Get the field to apply query + * + * @return string + * @since 17.0.0 + */ + public function getField(): string; + + /** + * Set the field to apply query + * + * @param string $field + * + * @return ISearchRequestSimpleQuery + * @since 17.0.0 + */ + public function setField(string $field): ISearchRequestSimpleQuery; + + + /** + * Get the all values to compare + * + * @return array + * @since 17.0.0 + */ + public function getValues(): array; + + /** + * Add value to compare (string) + * + * @param string $value + * + * @return ISearchRequestSimpleQuery + * @since 17.0.0 + */ + public function addValue(string $value): ISearchRequestSimpleQuery; + + /** + * Add value to compare (int) + * + * @param int $value + * + * @return ISearchRequestSimpleQuery + * @since 17.0.0 + */ + public function addValueInt(int $value): ISearchRequestSimpleQuery; + + /** + * Add value to compare (array) + * + * @param array $value + * + * @return ISearchRequestSimpleQuery + * @since 17.0.0 + */ + public function addValueArray(array $value): ISearchRequestSimpleQuery; + + /** + * Add value to compare (bool) + * + * @param bool $value + * + * @return ISearchRequestSimpleQuery + * @since 17.0.0 + */ + public function addValueBool(bool $value): ISearchRequestSimpleQuery; + +} + |