2017-08-13 7 views
0

PostgreSQLのクエリに渡すために、JavascriptのGET文字列から部分文字列を取り出したいとします。 私はPostgreSQLフルテキスト検索を試したことがありますが、フルテキスト検索ではプレフィックスマッチング(Already described here)しか許されないという問題がありました。PostgreSQL複数の部分文字列検索

私は 'ILIKE ALL(配列)'をワイルドカードを使って部分配列の配列で使用したいと考えています。

SELECT *ドキュメンテーションiLikeの ALL(配列[ '%のsubstr1の%'、 '%のSUBSTR2の%'、 '%のsubstr3の%'])小包から。

私はこのようにJavascriptで自分のGET文字列を分割します。

var str =(GET()['search'])。split( '+');

これは私に既に部分文字列の配列を与えています。 regExを使用して各部分文字列に先頭と末尾の%を追加するにはどうすればよいですか? これを実現するにはより良い方法がありますか?

答えて

0

JavaScriptでは、あなたはそのためmapを使用することができます。ES5互換性のあるコードで

var str = (GET()['search']).split('+').map(word => '%' + word + '%'); 

を:魔法のように

var str = (GET()['search']).split('+').map(function (word) { 
    return '%' + word + '%'; 
}); 
+0

作品。 %を%25にエンコードして '%27'を追加して、クエリをGET経由で送信できるようにしました。 '%27%25 '+ word +'%25%27 '; (%)を返します。 }); '仕事をします。私のWhere節は、via: 'where:" doc ilike all(array ["+ str +"]) "、" – geom

+0

" % '")'、つまりエンコーディングをJavaScriptに任せることで、特殊文字が単語自体に含まれている場合にエスケープします。私は引用符は特別なものと見なされないことに気付きますが、なぜあなたの場合に問題になるのかわかりません。 – trincot

関連する問題