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# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...
随机推荐
- Nice Jquery Validator DOM 绑定
针对表单的绑定 示例:在 form 上绑定 data-validator-option 来配置参数 <form data-validator-option='{stopOnError:false ...
- hql 转 sql
import org.hibernate.engine.SessionFactoryImplementor; import org.hibernate.hql.ast.QueryTranslatorI ...
- EIGRP-14-EIGRP的命名模式
从IOS 15.0(1)M版本开始,工程师可以在路由器上使用命名模式(Named Mode)配置EIGRP进程.按照IPv4和IPv6,通过AS号来配置EIGRP进程的做法称为经典模式(Classic ...
- <WP8开发学习笔记>动态修改启动时导航的第一个页面(如登录前启动页为LoginPage,登录后变为MainPage)
很多时候我们需要在启动程序的时候根据状态改变初始导航页面,比如程序在启动的时候判断用户是否登录, 如果未登录则跳转到LoginPage.xaml否则跳转到MainPage界面. 这时候就要分析程序的启 ...
- [转] Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
点击阅读原文 一.概述 通过 sysfs 方式控制 GPIO,先访问 /sys/class/gpio 目录,向 export 文件写入 GPIO 编号,使得该 GPIO 的操作接口从内核空间暴露到用户 ...
- group by <grouping sets(...) ><cube(...)>
GROUP BY GROUPING SETS() 后面将还会写学习 with cube, with rollup,以及将它们转换为标准的GROUP BY的子句GROUP SET(), CU ...
- turtle 画国旗
代码实现: import turtle import time import os def draw_square(org_x, org_y, x, y): turtle.setpos(org_x, ...
- IDEA之maven配置详解
这两天被maven配置搞得焦头烂额,前后忙活了三天才彻底搞定. 下面我总结一下配置的步骤. 步骤 1. 首先去maven官网去下载maven,http://maven.apache.org/ 这里教大 ...
- 对select函数的理解
对select函数的理解 1. 处理多个socket链接的方法 阻塞模式下服务端要解决多个客户链接的问题的3个思路: 每个客户端的socket对应一个内核线程,在这个线程内部进行阻塞的read 单线程 ...
- READSJC.md
这个作业属于哪个课程 软件工程 这个作业要求在哪里 点我 这个作业的目标 介绍自己 作业正文 往下看啦 其他参考文献 空空如也 介绍自己: 我是综合实验班的孙劼成. 天天宅在家里实在是太无聊了,就背背 ...