2012-01-06 7 views
1

自動候補/完全フィールドはウェブ上で使用されます。 Googleは、検索クエリに1つのタイプが入るとすぐに、瞬時に提案が返ってくるので、それを習得しているようだ。Bツリーは自動提案/自動完成ウェブフォームでうまく機能しますか?

これを達成するためのフレームワークには、Web層の高速メモリ内データストアが必要であると仮定しています。私たちは、小売り製品をベースにしたGrailsアプリケーションを構築しているので、ユーザーはCanonCancunなどを示唆するCanを検索し、JSONとして返されたクイックオートコンプリートのためにメモリにキャッシュされたJava Bツリーで十分でしょうか? AJAX上でjQueryオートコンプリートフィールドの外に、このソリューションの開発を容易にするためのフレームワークやライブラリがありますか?

答えて

3

オートコンプリートは、テキストマッチング、情報検索の問題です。独自のBツリーを実装し、単語を他の単語にマッチさせる独自のロジックを書くことは、あなたができることです。しかし、Porter StemmingVector Space Model、およびString-edit distance calculationを実装する必要があります。

...またはLuceneとその派生物を使用することができますが、これは既に多くのことを行っています。このようなものを格納するために使用されたデータ構造について本当に気にしているなら、そのソースに飛び込むことができます。しかし、私はあなた自身のことを書くことを非常に疑っており、あなた自身でそれをすべて行うことは、長期的にはより保守的で効率的になるでしょう。

Grailsのエコシステムプラグインとしては、Searchableがあり、Ledbrook & SmithのGrails in Actionに記載されています。これは、Luceneを使っています。ドメインクラスに全文検索を追加するのはかなり簡単です。 (例えば、GinAの8章や検索可能なドキュメントをチェックしてください)。

+0

これは素晴らしい情報です...あなたは私に必要な作業をたくさん保存しました。ありがとう – raffian

1

Grails Richuiプラグインには、私が過去に使ったオートコンプリートがあります。キーストロークごとにデータベースにヒットするようにしました(私は示唆していませんが、データが頻繁に変更されてリアルタイムデータが必要になりました)。あなたのリストがかなり静的であっても、おそらくそれはあなたにとってうまくいくでしょう。

http://grails.org/plugin/richui#AutoComplete

+0

RichUIはユーザーインターフェイスのためのものですが、私はバックエンドソースが実装者に残っていると仮定していますが、正しいですか? – raffian

+0

それは正しいです、リンクはかなり良い例を与えます。 gspでは、キーが押されたときに起動するコントローラ/アクションと、そのコントローラ/アクションを実装してxmlを返すように指示します。 –

関連する問題