NEST教程系列:推断索引名
NEST教程系列:三种推断索引名写法
连接时设置默认索引
构建
ConnectionSettings时调用DefaultIndex()方法指定默认索引名。当无法为请求解析具体索引名时使用默认索引名
var settings = new ConnectionSettings()
.DefaultIndex("defaultindex");
var client = new ElasticClient(settings);
var searchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 如下
"http://localhost:9200/defaultindex/_search"
设置 .NET 类映射索引名
构建
ConnectionSettings时调用DefaultMappingFor<T>()方法为类对象配置映射的索引名
var settings = new ConnectionSettings()
.DefaultMappingFor<Project>(m => m
.IndexName("projects")
);
var client = new ElasticClient(settings);
var searchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 如下
"http://localhost:9200/projects/_search"
DefaultMappingFor<T>()方法配置映射的索引名使用优先级高于DefaultIndex()方法设置的默认索引名
var settings = new ConnectionSettings()
.DefaultIndex("defaultindex")
.DefaultMappingFor<Project>(m => m
.IndexName("projects")
);
var client = new ElasticClient(settings);
var projectSearchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 如下
"http://localhost:9200/projects/_search"
但是以下写法
var objectSearchResponse = client.Search<object>();
发送请求时实际 URL 如下
"http://localhost:9200/defaultindex/_search"
DefaultMappingFor<T>()还可以用于指定类型的其他默认值,包括属性名称、用于文档id的属性等等
在创建请求的时候直接显式指定索引名
对于需要索引名的API调用,可以在请求中显式地提供索引名
var settings = new ConnectionSettings();
var client = new ElasticClient(settings);
var response = client.Search<Project>(s => s
.Index("some-other-index") );
此时,当发送请求时实际 URL 如下
"http://localhost:9200/some-other-index/_search"
当在请求中显示指定索引名时,它将优先于 DefaultMappingFor<T>() 方法配置映射的索引名和DefaultIndex() 方法设置的默认索引名
var settings = new ConnectionSettings()
.DefaultIndex("defaultindex")
.DefaultMappingFor<Project>(m => m
.IndexName("projects")
);
var client = new ElasticClient(settings);
var response = client.Search<Project>(s => s
.Index("some-other-index"));
此时,当发送请求时实际 URL 如下
"http://localhost:9200/some-other-index/_search"
总结
执行请求时的索引名取值优先级排序为
- 在创建请求的时候直接显式指定索引名
- 设置 .NET 类映射索引名
- 连接时设置默认索引
NEST教程系列:推断索引名的更多相关文章
- AngularJs学习笔记--Guide教程系列文章索引
在很久很久以前,一位前辈向我推荐AngularJs.但当时我没有好好学习,仅仅是讲文档浏览了一次.后来觉醒了……于是下定决心好好理解这系列的文档,并意译出来(英文水平不足……不能说是翻译,有些实在是看 ...
- MongoDB基础教程系列--第六篇 MongoDB 索引
使用索引可以大大提高文档的查询效率.如果没有索引,会遍历集合中所有文档,才能找到匹配查询语句的文档.这样遍历集合中整个文档的方式是非常耗时的,特别是处理大数据时,耗时几十秒甚至几分钟都是有可能的. 创 ...
- Solidity教程系列1 - 类型介绍
现在的Solidity中文文档,要么翻译的太烂,要么太旧,决定重新翻译下,再加上代码事例讲解. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果 ...
- 智能合约语言Solidity教程系列2 - 地址类型介绍
智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...
- 智能合约语言 Solidity 教程系列2 - 地址类型介绍
Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是 ...
- 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包
微信支付教程系列之现金红包 最近最弄这个微信支付的功能,然后扫码.公众号支付,这些都做了,闲着无聊,就看了看微信支付的其他功能,发现还有一个叫“现金红包”的玩意,想 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
微信支付教程系列之公众号支付 今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...
- C# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...
随机推荐
- Python3 源码阅读 - 垃圾回收机制
Python的垃圾回收机制包括了两大部分: 引用计数(大部分在 Include/object.h 中定义) 标记清除+隔代回收(大部分在 Modules/gcmodule.c 中定义) 1. 引用计数 ...
- DRY原则的一个简单实践
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/dry-dont-repeat-yourse ...
- virtualbox 基于nat模式搭建局域网并且和宿主机通信
1.VIRTUALbox 2.两台虚拟机,设置网络为DHCP方式 检查文件确认是dhcp模式不是的百度搜索修改:/etc/sysconfig/network-scripts/ifcfg-enps3(网 ...
- [CF696D]Legen...
题目 点这里看题目. 分析 首先对于模式串建立 AC 自动机,并且计算出每个状态\(p\)的贡献总和\(con(p)\). 考虑一个朴素的 DP : \(f(i,p)\):当前串长度为 ...
- ZooKeeper使用入门
ZooKeeper简介 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop的子项目之一.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式 ...
- Apache Hudi:云数据湖解决方案
1. 引入 开源Apache Hudi项目为Uber等大型组织提供流处理能力,每天可处理数据湖上的数十亿条记录. 随着世界各地的组织采用该技术,Apache开源数据湖项目已经日渐成熟. Apache ...
- Docker图形界面管理
之前都是使用命令行进行Docker的管理,这里简单介绍一下Docker的图形界面管理.之所以说简单介绍,是因为在生产环境都是集群,很少使用图形界面管理单台Docker主机,所以就演示记录一下,在个人测 ...
- 一个JS库Lodash
中文文档:https://www.html.cn/doc/lodash/#_aftern-func
- Spring如何解决循环依赖?
介绍 先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化完成 Spring的循环依赖有两种场景 构造器的循环依赖 ...
- jquery 李南江老师jquery和ajax视频教程
链接:https://pan.baidu.com/s/11QF97RLg1aW9bf6o-CdHvQ 密码:qfer https://www.bilibili.com/video/av22807707 ...