2

我在狮身人面像有索引。索引中的字段之一是 URL。它包含例如下一个值:

(1) http://u24.ru/news/38417/v-centre-chelyabinska-muzhchina-popytalsya-pereplyt-reku?rss
(2) https://meduza.io/feature/2017/07/10/islamskoe-gosudarstvo-vybili-iz-mosula-chto-budet-dalshe
(3) https://stolica-s.su/sport/athletics/89078

我如何尝试通过 url 搜索(部分代码):

$query = $this->manager->makeQuery()
    ->select(['id'])
    ->from(['content']);

$url = str_replace(
    ['=', '&', '?', '-', '%'],
    [' ', ' ', ' ', ' ', ' '],
    'http://www.ruscur.ru/themes/0/00/70/7020.shtml?news/0/10/43/104359'
);
$url = $query->escapeMatch($url);
$query->match('url', $url);

var_dump($query->execute()->fetchAllAssoc()); // empty

有什么方法可以在不使用全文搜索的情况下使用 Sphinx 进行搜索?

4

1 回答 1

1

您可以制作 URL 的哈希值并将其存储,然后通过哈希值进行比较:

$query = $this->manager->makeQuery()
    ->select(['id'])
    ->from(['content'])
    ->where('hash', '=', Hasher::hash($url));

查询生成器提示:http: //foolcode.github.io/SphinxQL-Query-Builder/

于 2017-07-28T09:38:36.147 回答