aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/FullTextSearch/Service/ISearchService.php
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-11-01 17:33:50 +0100
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-11-01 17:33:58 +0100
commit98f30c2dab24f0ab80015ef7849a7d8875651f6f (patch)
tree9de386977ed99c6627410de53d0cfdfaccf4616c /lib/public/FullTextSearch/Service/ISearchService.php
parentabed75e5cbd200169a236f3b586553e5d9ed0452 (diff)
parent7246f2ace50e41f68433cd89755413b512fa7909 (diff)
downloadnextcloud-server-98f30c2dab24f0ab80015ef7849a7d8875651f6f.tar.gz
nextcloud-server-98f30c2dab24f0ab80015ef7849a7d8875651f6f.zip
Merge branch 'addressbook-uid-check-migration' of https://github.com/nextcloud/server into addressbook-uid-check-migration
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'lib/public/FullTextSearch/Service/ISearchService.php')
-rw-r--r--lib/public/FullTextSearch/Service/ISearchService.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/lib/public/FullTextSearch/Service/ISearchService.php b/lib/public/FullTextSearch/Service/ISearchService.php
new file mode 100644
index 00000000000..7da38e44f5c
--- /dev/null
+++ b/lib/public/FullTextSearch/Service/ISearchService.php
@@ -0,0 +1,89 @@
+<?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, Maxence Lange <maxence@artificial-owl.com>
+ * @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\Service;
+
+
+use OCP\FullTextSearch\Model\ISearchRequest;
+use OCP\FullTextSearch\Model\ISearchResult;
+
+
+/**
+ * Interface ISearchService
+ *
+ * @since 15.0.0
+ *
+ * @package OCP\FullTextSearch\Service
+ */
+interface ISearchService {
+
+
+ /**
+ * generate a search request, based on an array:
+ *
+ * $request =
+ * [
+ * 'providers' => (string/array) 'all'
+ * 'author' => (string) owner of the document.
+ * 'search' => (string) search string,
+ * 'size' => (int) number of items to be return
+ * 'page' => (int) page
+ * 'parts' => (array) parts of document to search within,
+ * 'options' = (array) search options,
+ * 'tags' => (array) tags,
+ * 'metatags' => (array) metatags,
+ * 'subtags' => (array) subtags
+ * ]
+ *
+ * 'providers' can be an array of providerIds
+ *
+ * @since 15.0.0
+ *
+ * @param array $request
+ *
+ * @return ISearchRequest
+ */
+ public function generateSearchRequest(array $request): ISearchRequest;
+
+
+ /**
+ * Search documents
+ *
+ * @since 15.0.0
+ *
+ * @param string $userId
+ * @param ISearchRequest $searchRequest
+ *
+ * @return ISearchResult[]
+ */
+ public function search(string $userId, ISearchRequest $searchRequest): array;
+
+}
+