0

Solr 4.1 を使用しており、Query で正規表現パターンを試しています。サンプルデータは

56% AB, 78% DC
65% AB, 55% IJ
70% AB, 35% LJ

私はこのパターンを試しています/([1-6][0-9]% AB)/が、これはうまくいかないので試しました

/([1-6][1-9])??AB/

パターンが適用されるときにAND演算子を使用せず、各文字にOR演算子を適用しているため、上記のすべてが表示されます。例: 以下の結果も表示されます

77% DD, 89% FF

Solr 4.0以降で正規表現を試した人はいますか?

4

1 に答える 1

0

フィールドがstringタイプの場合は、次を試すことができます。 /[1-6][0-9]. AB.*/

(フィールドで同じ正規表現検索を試みましたtextが、おそらくトークン化が原因で一致しませんでした。)

これは、3 番目の位置の任意の文字に一致するため、探しているものよりも緩い一致であることはわかっていますが、Solr REST API は正規表現内の % を好みません。(SolrJまたは別のクライアントライブラリがそれを処理できるかどうかはわかりません。)そうは言っても、このパターンは間違いなく除外する必要があります

77% DD, 89% FF

そして多分あなたが必要とするすべて。

アップデート

これはあなたの質問に対する正確な解決策です。% (%25) とスペース (%20) にパーセント エンコーディングを使用すると、探しているものが正確に得られます。

/[1-6][0-9]%25%20AB.*/

于 2013-02-09T23:55:00.980 に答える