首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Java的弹性搜索短语匹配

基于Java的弹性搜索短语匹配
EN

Stack Overflow用户
提问于 2014-11-05 18:03:48
回答 1查看 1.1K关注 0票数 0

我试图做一个短语匹配,以找到类似的短语。

例如:Name字段有以下条目,所有3项都应计算为相同的:

  1. “美国技术公司”
  2. 美国阿拉巴马科技公司
  3. 美国加州技术公司

您能建议使用短语匹配器或类似的Java代码来表示上面Name字段的条目是相同的(可能更高的分数)吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-11-06 05:14:53

对于您的情况,可以使用"短语“类型或"前缀”类型进行匹配查询。在Java客户机中,Elasticsearch提供了两种可以使用的方法。

  • QueryBuilders.matchPhraseQuery(名称,文本);
  • QueryBuilders.matchPhrasePrefixQuery(名称,文本);

试着测试下面的脚本以检查结果。

代码语言:javascript
复制
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"
            }
        }
    }
}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26764020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档