0
我正在尝试做一个短语匹配来找到类似的短语。弹性搜索 - 使用Java的短语匹配
例如, Name字段具有以下项和所有3进行评估,以相同:
- “美国科技公司”
- “美国科技公司阿拉巴马”
- “美国高科技公司加州”
能你建议使用短语匹配器或类似的东西的Java代码建议名称字段中的上述条目是相同的(可能更高的分数)
谢谢。
我正在尝试做一个短语匹配来找到类似的短语。弹性搜索 - 使用Java的短语匹配
例如, Name字段具有以下项和所有3进行评估,以相同:
能你建议使用短语匹配器或类似的东西的Java代码建议名称字段中的上述条目是相同的(可能更高的分数)
谢谢。
对于您的情况,您可以使用“phrase”类型或“phrase_prefix”类型的匹配查询。 在Java客户端中,Elasticsearch提供了两种可以使用的方法。
尝试测试下面的脚本以检查结果。
curl -s -XPOST "http://localhost:9200/ap100/example/1" -d '{
"name": "USA Tech Company"
}'
curl -s -XPOST "http://localhost:9200/ap100/example/2" -d '{
"name": "USA Tech Company Alabama"
}'
curl -s -XPOST "http://localhost:9200/ap100/example/3" -d '{
"name": "USA Tech Company California"
}'
curl -XGET "http://localhost:9200/ap100/example/_search?pretty" -d '{
"query":{
"match":{
"name": {
"type": "phrase",
"query": "usa tech company",
"slop": 2
}
}
}
}'
curl -XGET "http://localhost:9200/ap100/example/_search?pretty" -d '{
"query":{
"match":{
"name": {
"type": "phrase_prefix",
"query": "usa tech company"
}
}
}
}'