0
私はcodeigniterとdoctrineで全文検索を実行しようとしています。 私の問題は、Doctrineが卸売りの単語に対してのみ検索を実行することです。doctrineで部分単語を検索する
私は山を探していますが、私は山という言葉ですべてのエントリを取得します。 しかし、私が "マウント"を検索すると、私は何も得られません。
私はcodeigniterとdoctrineで全文検索を実行しようとしています。 私の問題は、Doctrineが卸売りの単語に対してのみ検索を実行することです。doctrineで部分単語を検索する
私は山を探していますが、私は山という言葉ですべてのエントリを取得します。 しかし、私が "マウント"を検索すると、私は何も得られません。
私は、Symfony 1.4とDoctrine 1.2でSearchableの振る舞いを持つ同じ問題を抱えていました。私は単語に適用される検索用語にワイルドカード(?または*)を追加できることを発見しました。あなたの場合、 "マウント*"は山にマッチします。私の場合は、これを各検索タームに適用し、ユーザーから隠しました。
$results = $table->search('*'.$search_string.'*');
希望すると、誰かに役立ちます。
- 編集 - 少し急いで上記の投稿
...これは、単一の単語のクエリのための素晴らしい作品が、複数の単語の一部に再度失敗します。このようなものはうまくいくはずです:
$actual_search_string = '*'.implode('* *', explode(' ', $search_string)).'*';
$results = $table->search($actual_search_string);
テーブルの列タイプは何ですか?なぜLIKEを使用しないのですか? – Tom