Elasticsearch 参考指南(全文查询)

news/2024/11/16 20:31:16

全文查询

高级全文查询通常用于在全文字段(如电子邮件正文)上运行全文查询,它们了解如何分析被查询的字段,并将在执行之前将每个字段的analyzer(或search_analyzer)应用到查询字符串。

本组中的查询为:

match query

  • 执行全文查询的标准查询,包括模糊匹配和短语或接近查询。

match_phrase query

  • 类似于match查询,但用于匹配精确的短语或单词接近匹配。

match_phrase_prefix query

  • match_phrase查询类似,但是在最后一个单词上执行通配符搜索。

multi_match query

  • match查询的多字段版本。

common terms query

  • 一种更专业的查询,它对不常见的词有更多的偏好。

query_string query

  • 支持紧凑的Lucene查询字符串语法,允许你在单个查询字符串中指定AND|OR|NOT条件和多字段搜索,仅适用于专业用户。

simple_query_string query

  • query_string语法的一个更简单、更健壮的版本,适合直接向用户公开。

Match Query

match查询接受文本/数字/日期,分析它们并构造查询,例如:

GET /_search
{
    "query": {
        "match" : {
            "message" : "this is a test"
        }
    }
}

注意,message是字段的名称,你可以替换为任何字段的名称。

match

match查询是boolean类型的,这意味着提供的文本被分析,并且分析过程从提供的文本构造一个布尔查询,operator标志可以设置为orand控制布尔子句(默认为or),可以使用minimum_should_match参数设置要匹配的可选should子句的最小数量。

可以设置analyzer来控制哪个分析器将对文本执行分析过程,它默认为字段显式映射定义或默认搜索分析器。

lenient参数可以设置为true以忽略由数据类型不匹配引起的异常,例如尝试用文本查询字符串查询数值字段,默认值为false

模糊性

fuzziness允许基于被查询的字段类型进行模糊匹配,查看允许设置的模糊性。

在这种情况下,可以设置prefix_lengthmax_expansion来控制模糊过程,如果设置了模糊选项,查询将使用top_terms_blended_freqs_${max_expansions}作为其重写方法,fuzzy_rewrite参数允许控制查询如何重写。

模糊互换(abba)在默认情况下都是允许的,但可以通过设置fuzzy_transpositionsfalse禁用。

这里有一个提供额外参数的例子(注意结构的细微变化,message是字段名):

GET /_search
{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a test",
                "operator" : "and"
            }
        }
    }
}

零条件查询


http://www.niftyadmin.cn/n/4472234.html

相关文章

求数组的合并求其最大值

#include <stdio.h>#include <stdlib.h>#define random(x) (rand()%x)int main(){int N0,j,t,i,b0,c;int sum0;int a[N];printf("请输入数组中数字的个数。\n");scanf("%d",&N);for(b0;b<N;b){a[b]random(100);}for(b0;b<N;b){suma[…

自定义dialog和截屏

自定义对话框 代码&#xff1a; MyDialog.java类 public class MyDialog extends Dialog { /** * 当前上下文 */ public Context mContext null; /** * 显示的视图 */ public View layout null; /** * 宽度 */ public int width 0; /** * 高度 */ public int height 0; …

Android APP全面屏适配技术要点

全面屏的概念 为什么先要解释一下全面屏&#xff0c;因为这个词在现在来讲就是一个伪命题。全面屏字面意思就是手机的正面全部都是屏幕&#xff0c;100%的屏占比。但是现在推出所谓“全面屏”手机的厂商没有一个能达到全面的。 那么下面来说一下Android开发领域对全面屏的理解和…

android UI进阶之自定义组合控件

今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求&#xff0c;如何做呢&#xff1f;很多方法&#xff0c;可以自己绘制一个&#xff0c;可以通过继承基础控件来重写某些环节&#xff0c;当然也可以将控件组合成一个新控件&#xff0c;这也是最方便的一…

2.3 打包、压缩命令和文本编辑器VI

1. 打包和压缩命令随着压缩技术的发展&#xff0c;Linux环境下提供的压缩指令和格式开始变多。为了便于用户区分不同压缩文件使用的不同压缩技术&#xff0c;进而使用合适的指令进行操作&#xff0c;一般使用后缀标识文件在压缩或打包过程中所使用的压缩技术。*.Z // compress程…

程序员怎样渡过中年危机?

真的是危机&#xff1f; 直接上图&#xff0c;这特么哪里是危机&#xff0c;明明是金矿啊。直接用人民币直接消除了所谓的中年危机&#xff1f; 但是&#xff0c;你说我明明感觉很焦虑&#xff0c;很烦躁&#xff0c;一眼就看到底了&#xff0c;我一辈子就是一个程序员&#xf…

图片上动态添加文字

android上在图片上动态添加文字的方法&#xff1a; [java] view plaincopy public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) { Resources resources gContext.getResources(); float scale resources.getDisplayMetrics().de…

BZOJ3718[PA2014]Parking——树状数组

题目描述 你的老板命令你将停车场里的车移动成他想要的样子。停车场是一个长条矩形&#xff0c;宽度为w。我们以其左下角顶点为原点&#xff0c;坐标轴平行于矩形的边&#xff0c;建立直角坐标系。停车场很长&#xff0c;我们可以认为它一直向右边伸展到无穷远处。车都是边平行…