1

我想,肯定有使用 redisSearch 的 php 开发人员。我只看过 Ethan Hann 的 RedisSearch-php 和 MCFJA 的 php-redisearch 的两个包。它们返回空文档,并且 MCFJA 的 php-redisearch 没有好处,因为它使用了 Predis 客户端(对于生产中的大型应用程序来说并不理想)。

请问有没有使用 redissearch 并取得进展的 Laravel/PHP 开发人员。我会非常感谢任何建议和帮助。谢谢。

    $redis = new \Predis\Client([
        'scheme' => 'tcp',
        'host'   => '127.0.0.1',
        'port'   => 6379,
    ]);

    $builder = new \MacFJA\RediSearch\Index\Builder($redis);

    // Field can be create in advance
    $address = new \MacFJA\RediSearch\Index\Builder\GeoField('address');

    $builder
        ->withName('person')
        ->addField($address)
        // Or field can be create "inline"
        ->addTextField('lastname', false, null, null, true)
        ->addTextField('firstname')
        ->addNumericField('age')
        ->create();

    $index = new \MacFJA\RediSearch\Index('person', $redis);
    $index->addDocumentFromArray([
        'firstname' => 'Joe',
        'lastname' => 'Doe',
        'age' => 30,
        'address' => '40.689247,-74.044502'
    ]);
    
    $search = new \MacFJA\RediSearch\Search($redis);

    $results = $search
        ->withIndex('person')
        ->withQuery('Doe')
        ->withHighlight(['lastname'])
        ->withScores()
        ->search();

    return $results;  // returning empty arrays
4

1 回答 1

1

版本终于出来了2.0.0macfja/redisearch

此版本(内置)支持多个 Redis 提供程序。它应该有最常见的,添加一个新的非常简单。


而对于空文档列表,可能是倒坐标引起的(应该是[longitude],[latitude]

于 2021-11-08T21:23:20.987 回答