16

軽量のあいまいテキスト検索ライブラリを提案できますか?

私がやりたいことは、ユーザーが入力ミスのある検索語に対して正しいデータを見つけられるようにすることです。

Lucene のような全文検索エンジンを使用することもできますが、やり過ぎだと思います。

編集:
ここで質問をより明確にするために、そのライブラリの主なシナリオがあります:
文字列の大きなリストがあります。このリスト(MSVSのインテリセンスのようなもの)で検索できるようにしたいのですが、リストには存在しないがリストにある文字列に十分近い文字列でこのリストをフィルタリングできるはずです。
例:

  • 青い

テキスト ボックスに「Gren」または「Geen」と入力すると、結果セットに「Green」が表示されます。

インデックス付きデータの主な言語は英語です。

Lucene はそのタスクに対して重すぎると思います。

更新

条件に一致する製品が 1 つ見つかりました。シャッフルテキストです。
代替手段を知っていますか?

4

8 に答える 8

3

Lucene is very scalable—which means its good for little applications too. You can create an index in memory very quickly if that's all you need.

For fuzzy searching, you really need to decide what algorithm you'd like to use. With information retrieval, I use an n-gram technique with Lucene successfully. But that's a special indexing technique, not a "library" in itself.

Without knowing more about your application, it won't be easy to recommend a suitable library. How much data are you searching? What format is the data? How often is the data updated?

于 2008-09-03T16:34:41.100 に答える
2

Lucene があいまい検索にどれだけ適しているかはわかりませんが、カスタム ライブラリの方が適しています。たとえば、この検索は Java で実行され、非常に高速に動作しますが、そのようなタスク用にカスタム作成されています: http://www.softcorporation.com/products/people/

于 2012-10-25T04:36:59.553 に答える
1

開発プラットフォームを指定していませんが、PHPの場合は、ZENDLuceneの潤滑油を確認することをお勧めします。

http://ifacethoughts.net/2008/02/07/zend-brings-lucene-to-php/ http://framework.zend.com/manual/en/zend.search.lucene.html

LAMPはJava上のLuceneよりもはるかに軽量であり、変換ライブラリまたはcmdラインコンバーターがあれば、他のファイルタイプに簡単に拡張できます。これを行うためのOSSソリューションはたくさんあります。

于 2010-01-05T03:23:44.027 に答える
1

SQLServerおよびOracleDBに統合されたWalnutil(Lucene APIに基づく)を試してください。任意のタイプのインデックスを作成して使用できます。単純な検索の場合はwalnutilsoftのいくつかのメソッドを使用でき、より複雑な検索の場合はLuceneAPIを使用できます。WalnutilToolsから作成されたインデックスが使用されたWebベースの例を参照してください。また、さまざまなタイプの検索を作成するために使用できるJavaおよびC#で記述されたコード例をいくつか見ることができます。このツールは無料です。 http://www.walnutilsoft.com/

于 2010-09-10T13:32:26.257 に答える
1

Soundex は、エンコーディングが非常に「英語」です。Daitch-Mokotoff は、多くの名前、特にヨーロッパ (ゲルマン) およびユダヤ人の名前に適しています。私の英国中心の世界では、それが私が使っているものです.

ウィキはこちら

于 2008-09-03T16:10:56.087 に答える
0

強力で軽量なソリューションはsphinxです。

Lucene より小さく、明確化をサポートします。

C++ で書かれており、高速で、戦闘でテスト済みで、すべての環境に対応するライブラリがあり、craigslists.orgなどの大企業で使用されています。

于 2012-03-10T04:29:44.630 に答える
0

@aku - 動作中の soundex ライブラリへのリンクは、ページの一番下にあります。

レーベンシュタイン距離については、ウィキペディアの記事の下部にも実装がリストされています。

于 2008-09-03T15:58:37.583 に答える