web-dev-qa-db-ja.com

redisで文字列を検索するにはどうすればよいですか?

オートコンプリート機能が必要です。データ型のプロパティに短い説明文字列があります。作成日順に並べられたデータ型のredisのidのリストがあり、redis型のドキュメントで説明されているように、idを使用してデータ型のプロパティを設定および取得します。ハッシュテーブルは使用しません。この設定でオートコンプリート入力ボックスに入力されたものと一致する文字列のセットを取得する最良の方法は何ですか?すべてのIDを調べて、検索するプロパティをチェックします。キーストロークごとに、これを行うのは間違った方法のようです。

EDIT:以下の回答に加えて、私はこれを見せられました:

http://antirez.com/post/autocomplete-with-redis.html

31
Bjorn Tipling

何かを保存するときに書き込むセットまたはソートされたセットを使用して、インデックスを設定する必要があります。

http://web.archive.org/web/20121013063245/http://playnice.ly/blog/2010/05/05/a-fast-fuzzy-full-text-indexに優れた記事があります。 -using-redis それは私が自分で使っているものにかなり近い。

10
Tom Clarkson

Redisでは、キーの値を検索する方法はありません。文字列を「見つける」ことができる唯一の方法は、keysコマンドを使用することです。唯一の欠点は、値ではなくキー名を検索することです。これを回避する方法は、検索文字列をキーとして、そのキーの値をIDに設定することです。私は自分の側でオートコンプリート機能を使用し、値としてIDを持つ検索文字列のみを含む別のデータベースを使用します。

4
Colum