私はhttp://localhost:8983/solrに自分のコアを作成し、いくつかの文書を追加して質問することができました。しかし、私が "犬"のようなものを照会すると、 "犬様"を含むそれらの文書も返されます。だから私は結果を改善するためにSVDアルゴリズムを実装したい。 私は検索エンジンのことは初めてです。私が知っているのは、Mahoutを使用してSVDを実装できることですが、Maven、Hadoop、Mahoutをインストールする必要があります。 ご意見をお待ちしております。Solrの検索結果にSVDアルゴリズムを実装する最も簡単な方法は何ですか?
答えて
あなたはこのフィルタは完全に正しいグラフ出力を生成する、単一または複数のトークン同義語をマッピングしSynonymGraphFilterFactory
を使用することができます。このフィルタは、シノニムフィルタの代わりに使用され、複数のトークンの同義語について誤ったグラフを生成します。
インデックス作成時にこのフィルタを使用する場合は、グラフフィルタをフラット化して、シノニムフィルタのようにトークンをスカッシュする必要があります。
ディレクトリyour_collection/conf/
にmysynonyms.txt
すなわちファイルを作成し、=>
記号
pooch,pup,fido => dog
huge,ginormous,humungous => large
と同義語を入れて、例のスキーマは次のようになります。
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymGraphFilterFactory" synonyms="mysynonyms.txt"/>
<filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymGraphFilterFactory" synonyms="mysynonyms.txt"/>
</analyzer>
出典:https://cwiki.apache.org/confluence/display/solr/Filter+Descriptions
条件を指定してインデックスを拡大する別の方法です内容に含まれていません。 @ shrfulが言うように同義語は良いです。
使われる単語ではなく、同義語リストで
行動の検索::彼らは
探しているものへのヒントとして、他のユーザーの行動を使用していますが、に実行される2つのその他の問題があります
これらは、1)その他の検索、2)ユーザーの行動から学んだ用語で索引を追加する必要があります。 MahoutのCorrelated Cross Occurrenceアルゴリズムは、両方に役立ちます。商品を読んでいる人につながる言葉や、購入や他の選好のデータがあれば、索引の項目と関連する変換項目を見つけることができます。 2番目のケースでは、ユーザーのコンバージョンを検索クエリに追加して結果をパーソナライズします。
ここに技術についてのブログ:http://actionml.com/blog/personalized_search ここMahoutのドキュメント上のページ:http://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html
あなたはまた、(右トレーニングデータを与えられた)されますword2vec、見て見つけなければならないこと「犬」と「犬」シノニム・リストに関係なくシノニムとなります。シノニム・リストはデータから学習されるためです。私はSolrにword2vecをどのように追加するのか分かりませんが、Lucidのクローズドソース製品であるFusionに統合されています。
- 1. Solrで用語集のマイニングを実装する最も簡単な方法は何ですか?
- 2. RailsでERBを実装する最も簡単な方法は何ですか?
- 3. リストを検索する最も簡単な方法は何ですか?
- 4. ファイルを検索する方法は、最も簡単で簡単ですか?
- 5. ソーシャルネットワーキングウェブサイト - メモリ(「SQL」なし)に「ユーザー検索」を実装する最も効果的な方法は何ですか?
- 6. surveymonkeyの結果をエクスポートする最も簡単な方法
- 7. C++の.NETイベントを実装する最も簡単な方法
- 8. クロスプラットフォームの方法でcバイナリの関数名を検索する最も簡単な方法は何ですか?
- 9. 最初に非等価な結果を返す最も簡単な方法は何ですか?
- 10. Rallyオブジェクトモデルを探索する最も簡単な方法は何ですか?
- 11. Firebase通知:オプトアウトを実装する最も簡単な方法
- 12. ウェブページに「サーバープッシュ」のような動作を実装する最も簡単な方法は何ですか?
- 13. クエリの結果に基づいてレコードを挿入する最も簡単な方法は何ですか?
- 14. アンドロイドの断片に2つの日付ピッカーを実装する最も簡単な方法は何ですか?
- 15. カスタム検索結果ランク付けを実装する方法は?
- 16. レスキューバーで検索バーボタンと結果コンポーネントを実装する方法
- 17. 大きなディレクトリで検索する最も簡単な方法は何ですか
- 18. Delphi:qry結果を使用してドロップダウンボックスを作成する最も簡単な方法は何ですか?
- 19. 簡単な検索アルゴリズムを最適化する
- 20. MacでSASをインストール/実行する最も簡単で簡単な方法は何ですか?
- 21. JavaでScala PartialFunctionを実装する最も簡単な方法は何ですか?
- 22. ASP.NET 3.5でFlexigridを実装する最も簡単な方法は何ですか?
- 23. シンプルなWebサービスプロジェクトを実装する最も簡単な方法は?
- 24. 検索結果の実装に戻る
- 25. サービスワーカー - 最も簡単な実装
- 26. 検索アルゴリズムの実装方法
- 27. マルチプレイヤーJavaScriptゲームのバックエンドサーバーを実装する最も簡単な方法は? (COMET/longpolling)
- 28. これはカレンダーのための最も簡単で簡単なアルゴリズムですか?
- 29. reactnativeで簡単な検索を実装する
- 30. ストアドプロシージャのユーザを検証する最も簡単な方法は?
ありがとうございます。私は全く新しいです。しかし、私の家庭教師は私にSVDの実装を依頼しました。そして、私は2日間maven、hadoop、mahoutをセットアップしましたが、失敗し、問題が発生しました。そして私はマハウト以外のSVDを実装する他の方法を知らないのですか? –