是否有任何插件允许在 Elasticsearch 上使用 LSH?如果是的话,你能指出我的位置并告诉我如何使用它吗?谢谢
编辑:我发现 ES 使用 MinHash 插件。我怎么能用这个来比较文件呢?什么是查找重复项的好设置?
是否有任何插件允许在 Elasticsearch 上使用 LSH?如果是的话,你能指出我的位置并告诉我如何使用它吗?谢谢
编辑:我发现 ES 使用 MinHash 插件。我怎么能用这个来比较文件呢?什么是查找重复项的好设置?
有一个Elasticsearch MinHash 插件。您可以在每次索引文档时使用它来提取 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"
}
}
}
}'
一个。使用 More like 此查询可用于在minhash_value
字段上进行“喜欢”搜索:
GET /_search
{
"query": {
"more_like_this" : {
"fields" : ["minhash_value"],
"like" : "KV5rsUfZpcZdVojpG8mHLA==",
"min_term_freq" : 1,
"max_query_terms" : 12
}
}
}
湾。您也可以使用模糊查询,但它接受与结果相差2
(最大)的查询。
GET /_search
{
"query": {
"fuzzy" : { "minhash_value" : "KV5rsUfZpcZdVojpG8mHLA==" }
}
}
您可以在此处找到有关模糊查询的更多信息。