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# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...
随机推荐
- 织梦cms 内容模型 option下拉框 value 分离
需要修改的文件在根目录include/customfields.func.php文件 foreach($items as $v) { $v = trim($v); if($v!='') { $myfo ...
- $.ajax 中的contentType 坑坑
$.ajax 设置数据类型 applicaiton/json之后,服务器端(express)就拿不到数据. $.ajax 中的 contentType 和 dataType: contentType ...
- Unit3-窝窝社交圈
全文共4909字,推荐阅读时间15~20分钟. 文章共分五个部分: JML总结 作业分析 评测相关 重构策略 课程体验感受 JML总结 定义 JML是一种对Java程序进行规格化设计的表示语言 JML ...
- 短短1天我学会了如何修改Butterfly的配置文件
目录 一.修改默认语言 二.创建标签.分类.关于和留言版页面 三.添加搜索框 四.飘带背景 五.使用Valine添加评论功能并支持邮箱提醒 六.收录谷歌.百度 一.修改默认语言 说明:安装Butter ...
- Serval and Parenthesis Sequence【思维】
Serval and Parenthesis Sequence 题目链接(点击) Serval soon said goodbye to Japari kindergarten, and began ...
- 一文入门Kafka,必知必会的概念通通搞定
Kakfa在大数据消息引擎领域,绝对是没有争议的国民老公. 这是kafka系列的第一篇文章.预计共出20篇系列文章,全部原创,从0到1,跟你一起死磕kafka. 本文盘点了 Kafka 的各种术语并且 ...
- Vue结合路由配置递归实现菜单栏
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...
- Java 从入门到进阶之路(二十四)
在之前的文章我们介绍了一下 Java 中的 集合框架中的Collection 的泛型,本章我们来看一下 Java 集合框架中的Collection 的子接口 List. Collection 接口有 ...
- express 框架的使用方法
express 框架的使用方法: 第一步: 生成一个 (express)项目工程 命令提示框的指令是: express (文件名) express -e (文件名) 两段指令的 ...
- SpringCloud之初识Feign
在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码: String baseUrl = "http://user-service/user/"; Us ...