网站开发工具 售价,施工企业主要负责人对安全生产的,成都网站制作价格,洛阳最好的做网站的公司哪家好声明#xff1a;如下所有的索引数据基于上一篇已经创建好的person_news索引#xff0c;具体mapping及插入的数据见上一篇
1、查询索引的所有数据#xff0c;适用于数据量不大的情况
GET /your_index_name/_search
{query: {match_all: {}}
}2、ma…声明如下所有的索引数据基于上一篇已经创建好的person_news索引具体mapping及插入的数据见上一篇
1、查询索引的所有数据适用于数据量不大的情况
GET /your_index_name/_search
{query: {match_all: {}}
}2、match查询match会对输入的关键词进行分词
GET /person_news/_search
{query: {match: {newsContent: 恒大}}
}3、multi_match查询是Elasticsearch中常用的一种查询类型用于在多个字段上执行相同的查询。它可以在多个字段上执行全文搜索、短语搜索、前缀搜索等操作 他的常用语法如下
{query: {multi_match: {query: your_search_query,fields: [field1, field2, field3],type: best_fields,operator: or}}
}query: 要在字段上搜索的查询字符串。 fields: 要搜索的字段列表。 type (可选): 指定匹配类型。常见的类型包括 best_fields: 返回匹配任意字段的文档默认类型。 most_fields: 返回匹配最多字段的文档。 cross_fields: 将查询视为一个整体并搜索所有字段。 phrase: 在字段中查找完整的短语匹配。 phrase_prefix: 在字段中查找短语的前缀匹配。 operator (可选): 定义多个查询词之间的逻辑操作。默认为or。如果设置为and则所有查询词都必须匹配。 比如
{query: {multi_match: {query: quick brown fox,fields: [title, description],type: cross_fields,operator: and}}
}这个示例将在title和description字段上搜索包含短语quick brown fox的文档并且所有的查询词都必须匹配由operator参数指定 再比如在companyName,“newsContent”,newsTitle三个字段里面搜索恒大关键词匹配则返回
GET /person_news/_search
{query: {multi_match: {query: 恒大,fields: [companyName,newsContent,newsTitle]}}
}4、term查询term不会对输入的关键词进行分词es建议不要用term查询text的字段最好查询keyword类型的字段
GET /person_news/_search
{query: {term: {newsSource: {value: 路透社}}}
}5、terms查询查询用于匹配字段中的多个值。它允许您指定一个或多个可能的值并返回匹配其中任何一个值的文档 term查询用于精确匹配单个值。terms查询用于匹配多个可能的值
GET /person_news/_search
{query: {terms: {newsSource: [新华社,美联社]}}
}6、bool类型查询 must等同于and must_not 等同于 not should 等同于 or 比如 查询新闻来源是路透社或者是新华社同时标签里面含有许家印的新闻
GET /person_news/_search
{query: {bool: {must: [{bool: {should: [{match: {newsSource: 路透社}},{match: {newsSource : 新华社}}]}},{term: {labels: {value: 许家印}}}]}}
}7、范围查询
GET /person_news/_search
{query: {range: {hotPoint: {gte: 1,lte: 2}}}
}8、根据某个字段排序并且分页查询
GET /person_news/_search
{query: {match_all: {}},sort: [{hotPoint: {order: desc}}],from: 0,size: 2
}9、Wildcard通配符查询Wildcard查询是Elasticsearch中的一种模式匹配搜索技术允许您在文档字段中查找与通配符模式匹配的内容。通配符可以是*匹配零个或多个字符或?匹配一个字符
GET /person_news/_search
{query: {wildcard: {newsSource: {value: 新*}}}
}10、nested嵌套查询 如下查询personInfo.personName张勇 并且personInfo.age54的数据
GET /person_news/_search
{query: {bool: {must: [{nested: {path: personInfo,query: {bool: {must: [{term: {personInfo.personName: {value: 张勇}}},{term: {personInfo.age: {value: 54}}}]}}}}]}}
}