Elasticsearch中如何进行Match查询

技术Elasticsearch中如何进行Match查询Elasticsearch中如何进行Match查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如

如何在Elasticsearch中进行Match查询,针对这个问题,本文详细介绍了相应的分析和解答,希望能帮助更多想要解决这个问题的朋友找到更简单更容易的方法。

如果你索引词对而不是独立的词,你可以尽可能保持这些词的上下文。这是你需要使用木瓦的时候。

例子:苏阿泰智能体

unigram:['sue ',' ate ',' the ','鳄鱼']

二元模型:[' suate ',' atethe ',' the intelligent ']

三元组:[' suatethe ',' atethe integer ']

备注:

三元组提供了更高的准确性,但也大大增加了索引中唯一术语的数量。在大多数情况下,二元模型就足够了。

幸运的是,用户倾向于通过使用类似于搜索数据的结构来表达他们的搜索意图。

但这很重要:索引二元模型是不够的;我们仍然需要单图,但是我们可以使用匹配双图作为增加相关性分数的信号。

索引时,需要创建Gles作为分析过程的一部分。

我们可以将unigrams和bigrams索引到一个字段中,但是将它们分别保存在可以独立查询的字段中更清楚。

Unigrams字段将构成我们搜索的基本部分,而bigrams字段用于提高相关性。注意:

术语匹配

只有当用户输入的查询内容与原始文档中的顺序相同时,瓦片区才有用。

总结:

使用短语查询时,最好使用Es默认的标准分词(标准分词:细粒度分词),这样可以使查询分词和索引分词尽可能匹配。

它特别适用于要求前后词语搭配的情况(例如人名、地名.).

00-1010新索引设置:

PUT/my_index

{

设置' :{

碎片数量' :1,

分析' :{

过滤器' :{

my _带状疱疹_filter':{

类型' : '木瓦',

最小带状疱疹大小' :2,

max _带状疱疹_size':2,

(=NationalBureauofStandards)国家标准局

p;    "output_unigrams":  false
                }
            },
            "analyzer": {
                "my_shingle_analyzer": {
                    "type": "custom",
                    "tokenizer":"standard",
                    "filter": [
                        "lowercase",
                        "my_shingle_filter">

Elasticsearch中如何进行Match查询

测试阶段

1.match查询

GET /my_index/_doc/_search
{
   "query": {
        "match": {
           "title": "the hungry alligator ate sue"
        }
   }
}
查询结果:
{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 3,
    "max_score" : 1.3721708,
    "hits" : [
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.3721708,#两个文档都包含 the 、 alligator 和 ate ,所以获得相同的评分。
        "_source" : {
          "title" : "Sue ate the alligator"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.3721708,#两个文档都包含 the 、 alligator 和 ate ,所以获得相同的评分。
        "_source" : {
          "title" : "The alligator ate Sue"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 0.21526179,#我们可以通过设置 minimum_should_match 参数排除文档 3 ,参考 控制精度 。 
        "_source" : {
          "title" : "Sue never goes anywhere without her alligator skin purse"
        }
      }
    ]
  }
}
分析:
注意文档 1 和 2 有相同的相关度评分因为他们包含了相同的单词

2.match.shingles查询

GET /my_index/_doc/_search
{
   "query": {
      "bool": {
         "must": {
            "match": {
               "title": "the hungry alligator ate sue"
            }
         },
         "should": {
            "match": {
               "title.shingles": "the hungry alligator ate sue"
            }
         }
      }
   }
}
查询结果:
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 3,
    "max_score" : 3.6694741,
    "hits" : [
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 3.6694741,
        "_source" : {
          "title" : "The alligator ate Sue"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.3721708,
        "_source" : {
          "title" : "Sue ate the alligator"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 0.21526179,
        "_source" : {
          "title" : "Sue never goes anywhere without her alligator skin purse"
        }
      }
    ]
  }
}
分析:
仍然匹配到了所有的 3 个文档, 但是文档 2 现在排到了第一名因为它匹配了 shingled 词项 ate sue.

关于Elasticsearch中如何进行Match查询问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/97034.html

(0)

相关推荐

  • 粘鼠板的胶简单去除法,毛刷粘上粘鼠板胶怎么去除

    技术粘鼠板的胶简单去除法,毛刷粘上粘鼠板胶怎么去除1风油精去胶法首先将风油精滴在湿巾纸上,然后用被风油精打湿的湿巾纸擦拭沾有粘鼠板的胶的地方,进行多次擦拭,顽固的残胶会慢慢的变软,最后就会去掉粘鼠板的胶简单去除法。2酒精

    生活 2021年10月29日
  • mysql安装过程中遇到问题怎么办(安装mysql最后一步不成功怎么办)

    技术mysql重新安装的疑问问题有哪些这篇文章主要介绍mysql重新安装的疑问问题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!近日遇到一个问题 重新安装了一下系统,但庆幸的是mysql的安

    攻略 2021年12月21日
  • Unity效果实现:扣血显示

    技术Unity效果实现:扣血显示 Unity效果实现:扣血显示在众多游戏中,敌人受到伤害后会弹出一个数值,显示收到了多少伤害,我们用Unity3D来实现这一效果
    实现思路:在敌人收到攻击后,生成一个文本

    礼包 2021年11月30日
  • Hibernate中提示serverTimezone出现问题怎么办

    技术Hibernate中提示serverTimezone出现问题怎么办小编给大家分享一下Hibernate中提示serverTimezone出现问题怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望

    攻略 2021年12月8日
  • sql如何实现jpql排序

    技术sql如何实现jpql排序这篇文章给大家分享的是有关sql如何实现jpql排序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 jpql按升序排序,并且null要排最后,可以使用COA

    攻略 2021年11月25日
  • 周记一个星期发生的事,周记是写一周发生的事情吗

    技术周记一个星期发生的事,周记是写一周发生的事情吗这一周我过得非常开心周记一个星期发生的事,因为我干了许许多多有趣的事情,还学了很多新知识,掌握了很多新本领。星期三晚上,我们在风雨球场看了一场精彩的英语歌曲大赛。小学部的

    生活 2021年10月24日