2015-09-25 9 views
10

はElasticsearchにLSHを可能にする任意のプラグインはありますか?はいの場合は、私はその場所に私を指摘し、それを使用する方法を少し教えていただけますか? ありがとう局所性鋭敏型ハッシュ - Elasticsearch

編集: 私はESがMinHashプラグインを使用していることを知りました。これでどのようにドキュメントを互いに比較できますか?重複を見つけるにはどうすればよいでしょうか?

+1

も興味を持って! – AdrianGW

答えて

2
  1. Elasticsearch MinHash Pluginがあります。文書を索引付けし、後でminhashで文書に照会するたびに、ハッシュ値を抽出するために使用することができます。

    $ curl -XPUT "localhost:9200/my_index/my_type/_mapping" -d '{ 
        "my_type":{ 
        "properties":{ 
         "message":{ 
         "type":"string", 
         "copy_to":"minhash_value" 
         }, 
         "minhash_value":{ 
         "type":"minhash", 
         "minhash_analyzer":"minhash_analyzer" 
         } 
        } 
        } 
    }' 
    
  2. :インデックスマッピングに

    $ curl -XPUT 'localhost:9200/my_index' -d '{ 
        "index":{ 
        "analysis":{ 
         "analyzer":{ 
         "minhash_analyzer":{ 
          "type":"custom", 
          "tokenizer":"standard", 
          "filter":["minhash"] 
         } 
         } 
        } 
        } 
    }' 
    
  3. 入れminhash_valueフィールド:あなたのインデックスを作成するとき

    $ $ES_HOME/bin/plugin install org.codelibs/elasticsearch-minhash/2.3.1 
    
  4. がminhashアナライザを追加します。

    1. MinHashプラグインをインストールします。 210

    2. ミニハッシュ値は、minhashアナライザで作成したインデックスにドキュメントを追加するときに自動的に計算されます。
    3. GET /_search 
      { 
          "query": { 
           "more_like_this" : { 
            "fields" : ["minhash_value"], 
            "like" : "KV5rsUfZpcZdVojpG8mHLA==", 
            "min_term_freq" : 1, 
            "max_query_terms" : 12 
           } 
          } 
      } 
      

      B:Use More like this queryminhash_valueフィールドを検索 "のように" を行うために使用することができます。またfuzzy queryを使用することができますが、それは2(最大)によって結果は異なるようにクエリを受け付けます。

      GET /_search 
      { 
          "query": { 
           "fuzzy" : { "minhash_value" : "KV5rsUfZpcZdVojpG8mHLA==" } 
          } 
      } 
      

      あなたはあいまいクエリhereについての詳細を見つけることができます。

  5. それとも、ハッシュelasicsearchの外の値(ハッシュ値を抽出するためにコードを書く)と、毎回あなたのインデックスは、コードを実行し、インデックス化されている文書にハッシュ値を添付することができ、文書を作成することができます。そして、後に上記のようにMore Like This queryまたはFuzzy queryを使用してハッシュ値で検索します。
  6. なく、少なくとも最後に、あなたは、上記のように(あなたはハッシュアルゴリズム合っている)自分でプラグインelasticsearch書いて、上記と同じ手順を行うことができます。
+0

は、キーワードやテキストフィールドにあいまいクエリを使用することができます - ない[minhash_value]上のタイプである[minhash] – alizx

関連する問題