2

プログラムに高度な検索機能を実装したいのですが、次のようなインターフェイスを作成したくありません(これは単なる例です)。

ここに画像の説明を入力してください

私が欲しいのは、ユーザーが次のようなクエリを記述できるテキストボックスです(これが「連絡先」アプリケーションであると想定します)。

contact_name:john,michael,-michelle age:<=20,=>15 location:usa

私がこれまでに考えたこと:

まず、テキストをスペースで展開し、次にコロンで展開します。したがって、最初の項目は「検索フィールド」になり、2番目の配列は検索する値になります。ただし、、、など<=の演算子には問題が-あり*ます。それらは固定幅ではないので、演算子の「substr」をどのくらいの文字で実行すればよいかわかりません。

ちなみに、この検索操作に「トークンベースの検索」などの一般的な名前が付いている場合は、すでに機能しているライブラリを検索できます。

4

2 に答える 2

0

callbacksでいくつかの正規表現を使用できると思います。

何かのようなもの :

"`[a-z]+:([*<=>])([a-z],)+ `U"

これは単なる例です。必要に応じて完了する必要があります。

頑張ってください。

于 2012-10-04T09:54:02.103 に答える
0

ユーザークエリを構築するために自動提案を使用して、高度な検索のようなものを構築する必要があります (おそらく)。これにより、クエリ構造をより詳細に制御できます。
フリーハンド クエリを解析しようとすると、クエリの誤解を招く可能性があります。

以下のクエリは有効
contact_name:john,michael,-michelle age:<=20,=>15 location:usa
であり、次の同じ表現は無効であると見なしますか?
contact_name:john, michael,-michelle age:<=20,=>15 location:usa
(ほぼどこにでもスペースをいくつでも挿入できます)

「クエリビルダー」などを検索してみてください。ただし、実装が非常にアプリケーション固有であることを考えると、役立つものが見つかるかどうかはわかりません。

于 2012-10-04T10:04:41.073 に答える