さまざまなテキストベースのフィールドを検索する必要があるアプリケーションがあります。このアプリケーションは、NHibernateをORMとして使用して開発されています。
memories
検索キーワードがであるのに商品の説明が含まれているなど、キーワードが類似した単語と一致する場合でも関連する結果を返すことができるように、検索にポーターステミングを実装したいと思いますmemory
。
誰かがそのようなタイプの検索のベストプラクティスを提案できますか?頭に浮かぶ最初のアイデアは、同じフィールドの2つのバージョンをデータベースに格納することです。次に例を示します。
Description
Description_Search
列はDescription
、Webサイト管理者が入力したテキストであり、フロントエンドに表示されるテキストです。
にはDescription_Search
同じテキストが含まれますが、Porter-Stemmingアルゴリズムを通過します。Description_Search
その場合、検索クエリは、ではなくフィールドに基づいて行われDescription
ます。
これは意味がありますか?ほぼ同じテキストの2つのバージョンを保存しなければならないのはスペースの無駄ですか?
また、Lucene.Net
そのような場合に役立ちますか?また、フルテキストベースの検索のためにLucene.Netを統合することも検討していますが、まだ詳細には検討していません。
前もって感謝します!