Elasticsearch で LSH を許可するプラグインはありますか? はいの場合は、その場所を示して、その使い方を少し教えていただけますか? ありがとう
編集: ES が MinHash プラグインを使用していることがわかりました。これを使用してドキュメントを相互に比較するにはどうすればよいですか? 重複を見つけるのに適した設定は何ですか?
Elasticsearch で LSH を許可するプラグインはありますか? はいの場合は、その場所を示して、その使い方を少し教えていただけますか? ありがとう
編集: ES が MinHash プラグインを使用していることがわかりました。これを使用してドキュメントを相互に比較するにはどうすればよいですか? 重複を見つけるのに適した設定は何ですか?
Elasticsearch MinHash Pluginがあります。これを使用して、ドキュメントにインデックスを付けるたびに minhash 値を抽出し、後で minhash でドキュメントをクエリできます。
MinHash プラグインをインストールします。
$ $ES_HOME/bin/plugin install org.codelibs/elasticsearch-minhash/2.3.1
インデックスの作成時に minhash アナライザーを追加します。
$ curl -XPUT 'localhost:9200/my_index' -d '{
"index":{
"analysis":{
"analyzer":{
"minhash_analyzer":{
"type":"custom",
"tokenizer":"standard",
"filter":["minhash"]
}
}
}
}
}'
minhash_value
フィールドをインデックス マッピングに入れます。
$ 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"
}
}
}
}'
を。Use More like このクエリminhash_value
を使用して、フィールドで「いいね」検索を実行できます。
GET /_search
{
"query": {
"more_like_this" : {
"fields" : ["minhash_value"],
"like" : "KV5rsUfZpcZdVojpG8mHLA==",
"min_term_freq" : 1,
"max_query_terms" : 12
}
}
}
b. ファジー クエリを使用することもできますが、結果と異なる2
(最大) クエリを受け入れます。
GET /_search
{
"query": {
"fuzzy" : { "minhash_value" : "KV5rsUfZpcZdVojpG8mHLA==" }
}
}
ファジー クエリの詳細については、こちらを参照してください。