diff options
author | Andrew Dolgov <[email protected]> | 2020-12-11 09:48:34 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2020-12-11 09:48:34 +0300 |
commit | 65254f5db47ce3fb8ce1bf9c4bbda2cd6f977cf8 (patch) | |
tree | 5f5fcb685db155a2e47740a205dd27516b55e8f8 /plugins/search_sphinx/init.php | |
parent | 43bd3394c31ed67cafddd2c147144bdb67f32477 (diff) |
- move sphinx plugin to a separate repo
- regenerate config checks without sphinx-related variables
Diffstat (limited to 'plugins/search_sphinx/init.php')
-rw-r--r-- | plugins/search_sphinx/init.php | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/plugins/search_sphinx/init.php b/plugins/search_sphinx/init.php deleted file mode 100644 index 95b7ad676..000000000 --- a/plugins/search_sphinx/init.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php - -class Search_Sphinx extends Plugin { - function about() { - return array(1.0, - "Delegate searching for articles to Sphinx (don't forget to set options in config.php)", - "hoelzro", - true, - "https://git.tt-rss.org/fox/tt-rss/wiki/SphinxSearch"); - } - - function init($host) { - $host->add_hook($host::HOOK_SEARCH, $this); - - // idk if that would work but checking for the class being loaded is somehow not enough - if (class_exists("SphinxClient") && !defined('SEARCHD_COMMAND_SEARCH')) { - user_error("Your PHP has a separate systemwide Sphinx client installed which conflicts with the client library used by tt-rss. Either remove the system library or disable Sphinx support."); - } - - require_once __DIR__ . "/sphinxapi.php"; - } - - function hook_search($search) { - $offset = 0; - $limit = 500; - - $sphinxClient = new SphinxClient(); - - $sphinxpair = explode(":", SPHINX_SERVER, 2); - - $sphinxClient->SetServer($sphinxpair[0], (int)$sphinxpair[1]); - $sphinxClient->SetConnectTimeout(1); - - $sphinxClient->SetFieldWeights(array('title' => 70, 'content' => 30, - 'feed_title' => 20)); - - $sphinxClient->SetMatchMode(SPH_MATCH_EXTENDED2); - $sphinxClient->SetRankingMode(SPH_RANK_PROXIMITY_BM25); - $sphinxClient->SetLimits($offset, $limit, 1000); - $sphinxClient->SetArrayResult(false); - $sphinxClient->SetFilter('owner_uid', array($_SESSION['uid'])); - - $result = $sphinxClient->Query($search, SPHINX_INDEX); - - $ids = array(); - - if (is_array($result['matches'])) { - foreach (array_keys($result['matches']) as $int_id) { - $ref_id = $result['matches'][$int_id]['attrs']['ref_id']; - array_push($ids, $ref_id); - } - } - - $ids = join(",", $ids); - - if ($ids) - return array("ref_id IN ($ids)", array()); - else - return array("ref_id = -1", array()); - } - - function api_version() { - return 2; - } -} |