2017-07-03 16 views
1

私はhttp://localhost:8983/solrに自分のコアを作成し、いくつかの文書を追加して質問することができました。しかし、私が "犬"のようなものを照会すると、 "犬様"を含むそれらの文書も返されます。だから私は結果を改善するためにSVDアルゴリズムを実装したい。 私は検索エンジンのことは初めてです。私が知っているのは、Mahoutを使用してSVDを実装できることですが、Maven、Hadoop、Mahoutをインストールする必要があります。 ご意見をお待ちしております。Solrの検索結果にSVDアルゴリズムを実装する最も簡単な方法は何ですか?

答えて

1

あなたはこのフィルタは完全に正しいグラフ出力を生成する、単一または複数のトークン同義語をマッピングし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

1

条件を指定してインデックスを拡大する別の方法です内容に含まれていません。 @ shrfulが言うように同義語は良いです。

  1. 使われる単語ではなく、同義語リストで

  2. 行動の検索::彼らは

  3. 探しているものへのヒントとして、他のユーザーの行動を使用していますが、に実行される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に統合されています。

+0

ありがとうございます。私は全く新しいです。しかし、私の家庭教師は私にSVDの実装を依頼しました。そして、私は2日間maven、hadoop、mahoutをセットアップしましたが、失敗し、問題が発生しました。そして私はマハウト以外のSVDを実装する他の方法を知らないのですか? –

関連する問題