首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch:匹配查询可以得到结果,但是更像查询不能

elasticsearch:匹配查询可以得到结果,但是更像查询不能
EN

Stack Overflow用户
提问于 2014-04-28 08:26:52
回答 1查看 453关注 0票数 0

我有一个关于elasticsearch查询的问题:

我有两个文档,内容字段使用标准分析器,值如下:

  1. “内容”:“但巴菲特持有富国银行( Wells )的股份,以及约翰·约翰逊( johnson )在其他一些主要银行持有的股份。”
  2. “内容”:“塔可钟的首席信息约翰逊热范彻告诉国家餐厅新闻,移动是他们目前的首要焦点”

当我使用match查询时,我可以获得这两个文档:

代码语言:javascript
复制
localhost:9200/content/en-us/_search?pretty=true -d '
{    
"query" : {
    "match" : {
        "content" : "johnson hot"
    }
  } 
}'

但我无法让他们使用更类似的查询:

代码语言:javascript
复制
localhost:9200/content/en-us/_search?pretty=true -d '
{
    "from": 0,
    "size": 200,
    "query": {
        "more_like_this_field": {
            "content": {
                "like_text": "johnson hot",
                "min_term_freq": 1,
                "max_query_terms": 12
             }
        }
    }
}'

结果:

代码语言:javascript
复制
"hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
}

有人知道为什么吗?查询是否与SQL中的“相似”类似?

谢谢约翰逊

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-28 10:38:43

更像此字段查询将通过匹配指定字段的内容为您提供类似的文档。

您必须将min_doc_freq设置为1,默认值为5,因此如果like_text中的术语在超过5个文档中不出现,则忽略中的术语。由于您只有两个文档,术语jhonsonhot都将被忽略。下面的查询应该可以工作

代码语言:javascript
复制
curl 'http://localhost:9200/content/en-us/_search?pretty=true' -d '{
  "from": 0,
  "size": 200,
  "query": {
    "more_like_this_field": {
      "content": {
        "like_text": "johnson hot",
        "min_term_freq": 1,
        "max_query_terms": 12,
        "min_doc_freq": 1
      }
    }
  }
}'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23336074

复制
相关文章

相似问题

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