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"
}
}
}
}'