精华内容
下载资源
问答
  • 如何配置动态映射?  通过dynamic属性进行控制  true:默认值,动态添加字段;  false:忽略新字段;  strict:碰到陌生字段,抛出异常。 适用范围  适用在根对象上(根对象是啥?)或者object类型...

    一个集群,可以建多个索引,每个索引又有多个类型,每个类型有自己的mapping。

    转自:https://blog.csdn.net/zhousenshan/article/details/82928827

    1、什么是映射

        映射:创建索引的时候,可以预先定义字段的类型以及相关属性(比如说让某字段是否存储、用那种分析器、重要级别)

    Elasticsearch可定义的字段类型

        作用:这样会让索引建立的更加的细致和完善!

        分类:静态映射和动态映射

    2、映射的属性方法

        除了定义字段的类型、还可以给字段添加相关的属性。通过定义这些属性,可以让字段更加高级、特殊性

    字段可添加的属性

    特殊讲解:

        analyzer :

            standard:支持多数欧洲语言

            whitespace:基于空格进行分词

            simple:基于非字母字符进行分词,同时还能转化为小写字母

            english:对英文进行分词

     

    3、动态映射

    什么是动态映射?

        文档中碰到一个以前没见过的字段是,动态映射可以自动决定该字段的类型,并对该字段添加映射。

    如何配置动态映射?

        通过dynamic属性进行控制

            true:默认值,动态添加字段;

            false:忽略新字段;

            strict:碰到陌生字段,抛出异常。

    适用范围

        适用在根对象上(根对象是啥?)或者object类型的任意字段上

    #建立映射

    POST  /library

    {

        "settings":{

            "number_of_shards":5,

            "number_of_replicas":1

        },

        "mappings":{

            "books":{

                "properties":{

                    "title":{"type": "string"},

                    "name":{"type": "string","index":"not_analyzed"},

                    "publish_date":{"type": "date","index":"not_analyzed"},

                    "price":{"type": "double"},

                    "number":{"type":"double"},

                    "number":{"type": "integer"}

                }

            }

        }

    }

    GET /library/

    #动态映射

    PUT /library

    {

        "mappings":{

            "books": {

                "dynamic": "strict",

                "properties":{

                    "title" : {"type": "string"},

                    "name":{"type":"string","index":"not_analyzed"},

                    "publish_date": {"type":"date","index":"not_analyzed"},

                    "price": {"type": "double"},

                    "number": {

                        "type": "object",

                        "dynamic": true

                    }

                }

            }

        }

    }

    GET /library/

    4、管理映射

        获取映射信息

    #获取某个索引的映射信息

    GET /library/_mapping

    GET /bank/_mapping

    #获取某个索引下某个type的映射信息

    GET  /library/_mapping/books

    #获取藏歌集群内所有的映射信息

    GET /_all/_mapping

    #获取这个集群内某两个或多个type的映射信息

    GET /_all/_mapping/books,bank_account

        更新映射信息

    #更新修改mapping映射

    #很遗憾,mapping一旦建立,就不能修改现有的字段映射

    #如果要推倒现有的映射,你得重新建立一个索引,然后重新定义映射

    #然后把之前索引里的数据导入到新建立的索引里

    #======具体的方法=========

    #1、给现有的索引定义一个别名,并且把现有的索引指向这个别名,运行步骤2;

    #2、运行: PUT /现有索引/_alias/别名A

    #3、新创建一个索引,定义好最新的映射

    #4、将别名指向新的索引,并且取消之前索引的指向,运行步骤5

    #5、运行:POST /_aliases

    {

        "actions":{

                {"remove": {"index": "现有索引名","alias":"别名A"}},

                {“add”:{"index":"新建索引名","alias":"别名A"}}

        }

    }

    #注: 通过这几个步骤就实现了索引的平滑过渡,并且是零停机的。

        删除映射信息

    #删除映射

    DELETE /library/books

    DELETE /library/books/_mapping

    DELETE /library/_mapping/books

    DELETE /library/_mapping/books,bank

    展开全文
  • Tomcat如何运行没有做mapping的servlet

    千次阅读 2008-11-24 13:28:00
    Tomcat如何运行没有做mapping的servlet var $tag=tomcat,servlet,invoker,it; var $tag_code=1fb9e27ac202008150027f3a1b176991; Tomcat6有一个类org.apach
    Tomcat如何运行没有做mapping的servlet

     Tomcat6有一个类org.apache.catalina.servlets.InvokerServlet,它负责处理没有做Servlet Mapping的那些Servlet.但是,在tomcat安装目录的conf/web.xml中,系统默认情况下把org.apache.catalina.servlets.InvokerServlet的注册与地址映射注释了.

     

    <!--
        <servlet>
            <servlet-name>invoker</servlet-name>
            <servlet-class>
              org.apache.catalina.servlets.InvokerServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
    -->

    <!--
        <servlet-mapping>
            <servlet-name>invoker</servlet-name>
            <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>
    -->

     

    所以,去掉注释符,重新启动一次Tomcat,就可以按照http://localhost:8080/你的应用路径(path)/servlet/youservlet格式访问你没有进行地址映射的servlet了.

     

    如果在在启动Tomcat时报错,说

    org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application.

     

    使tomcat应用无法加载.可以按照以下解决办法处理:

    在conf/context.xml中的<Context>标签中添加参数privileged="true",即将其修改为

    <Context reloadable="true" privileged="true">

     

    重启Tomcat.

     

    主要提示:

    你的servlet可以不做地址映射(mapping),但是你应当在你的应用的配置文件web.xml中注册该servlet.

    比如,你的应用的web.xml的内容如下:

     

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5">

        <description>Servlet test</description>
        <display-name>Servlet Examples</display-name>

       <servlet>
          <servlet-name>hellolet</servlet-name>
          <servlet-class>testlet.hellolet</servlet-class>
        </servlet>
       <servlet>
          <servlet-name>hello</servlet-name>
          <servlet-class>testlet.hello</servlet-class>
        </servlet>

        <servlet-mapping>
            <servlet-name>hellolet</servlet-name>
            <url-pattern>/hellolet</url-pattern>
        </servlet-mapping>

    </web-app>

    两个servlet(testlet.hellolet和testlet.hello),testlet.hellolet作了地址映射,testlet.hello没有.

    假设你的应用的path设置值是: /myjsp

    那么,你可以通过:

    http://localhost:8080/myjsp/hellolet或者http://localhost:8080/myjsp/servlet/hellolet访问testlet.hellolet。

    但是,你只能通过http://localhost:8080/myjsp/servlet/hello访问testlet.hello

     

    重要补充:

    如果你的servlet没有在web.xml中注册,你在访问地址中必须使用servlet的完整名称.

    以上述两个servlet为例,访问第二个servlet(testlet.hello)时,必须使用这个地址:

    http://localhost:8080/myjsp/servlet/testlet.hello

     

     

    展开全文
  • Elasticsearch如何更新mapping

    千次阅读 2017-08-28 16:31:48
    那么,当我们需要更新 mapping 时,该如何是好呢? 基本思路 当我们在创建一条索引时,添加好 mapping 后,可设置一个 alias 指向该索引,然后生产环境采用该 alias 来索引数据。当然,如果没有这样的话,建议...

    Elasticsearch 的 mapping 在创建 indices 时即已确定,无法更改。那么,当我们需要更新 mapping 时,该如何是好呢?

    基本思路

    当我们在创建一条索引时,添加好 mapping 后,可设置一个 alias 指向该索引,然后生产环境采用该 alias 来索引数据。当然,如果没有这样做的话,建议趁早备份,修改 API 。

    既然已创建的 indices 无法修改,我们可以重新创建一个新的 indices, 然后将原 indices 上的数据复制到新的 indices 上,再将 alias 指向新 indices。最后,删除原索引。

    参数说明

    • 当前索引名称: test_v1
    • 生产索引名称:test
    • 目标索引名称: test_v2

    操作步骤

    1. 将生产索引指向当前索引:test -> test_v1

    2. 创建新索引 test_v2

      • Method: PUT
      • Url: http://localhost:9200/test_v2
      • Body:

        {
            "mappings": {
                "content": {
                    "properties": {
                        "title": {
                            "type": "text",
                            "fields": {
                            "accurate": { "type": "keyword" }
                            },
                            "analyzer": "ik_smart",
                            "search_analyzer": "ik_smart",
                            "include_in_all": "true"
                        },
                        "content": {
                            "type": "text",
                            "analyzer": "ik_smart",
                            "search_analyzer": "ik_smart",
                            "include_in_all": "true"
                        },
                        "author": { "type": "keyword" },
                        "category": { "type": "keyword" }
                    }
                }
            }
        }
    3. 复制数据:test_v1 -> test_v2

    4. 修改别名: test -> test_v2

      • Method: POST
      • Url: http://localhost:9200/_aliases
      • Body:

        {
            "actions": [
                { "remove" : { "index" : "test_v1", "alias" : "test" } },
                { "add" : { "index" : "test_v2", "alias" : "test" } }
            ]
        }
    5. 删除旧索引: test_v1

    小结

    至此,我们达到了伪更新的效果。不过这里存在一个问题,如果数据量超大的话,复制数据所消费的时间比较多,所以请在构建索引前尽量考虑周全。

    展开全文
  • Tomcat如何运行没有做mapping的servlet Tomcat有一个类org.apache.catalina.servlets.InvokerServlet,它负责处理没有做Servlet Mapping的那些Servlet.但是,在tomcat安装目录的conf/web.xml中,系统默认情况下把org....
    Tomcat如何运行没有做mapping的servlet Tomcat有一个类org.apache.catalina.servlets.InvokerServlet,它负责处理没有做Servlet Mapping的那些Servlet.但是,在tomcat安装目录的conf/web.xml中,系统默认情况下把org.apache.catalina.servlets.InvokerServlet的注册与地址映射注释了.



    <!--
    <servlet>
    <servlet-name>invoker</servlet-name>
    <servlet-class>
    org.apache.catalina.servlets.InvokerServlet
    </servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>
    -->

    <!--
    <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
    -->



    所以,去掉注释符,重新启动一次Tomcat,就可以按照http://localhost:8080/你的应用路径(path)/servlet/youservlet格式访问你没有进行地址映射的servlet了.



    如果在在启动Tomcat时报错,说

    org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application.



    使tomcat应用无法加载.可以按照以下解决办法处理:

    在conf/context.xml中的<Context>标签中添加参数privileged="true",即将其修改为

    <Context reloadable="true" privileged="true">



    重启Tomcat.



    本文来自CSDN博客,转载请标明出处
    展开全文
  • 本文已同步到 如何通过 Mapping 文件反混淆 ,提供更好的阅读体验 写在前边 过 Android 开发的应该或多或少都知道“混淆”这个技术点,它不仅可以帮助我们增加三方逆向的难度,还可以有效减少包体积,瘦身 APK ...
  • 首先,介绍一下用iBATIS的编程模型,大家请参考下图:可以看到,iBATIS并没有像Hibernate那样给我们的结构带来大的冲击,我们只要关注在DAO和SQL Mapping上面!所以,接下来我就一步一步来说明如何使用iBATIS~~~!...
  • 大家可以试验一下,在我的开发环境中会出现这个问题,不知道是不是只有我有问题。做法如下: ...[*]在routes.rb中加入如下代码,添加自己的routes mapping: [code="ruby"] map.articles_pa...
  • 企智已开,也有越来越多的企业希望通过 Mapping 行业对标,调整战略,提升竞争力。 本篇干货为第三期谷露猎头学院课程整理回顾,谷露软件猎头版运营总监Jacobi Zhang用企业真实的项目来给大家解说,如何做好...
  • 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建...
  • Elasticsearch更新mapping

    2020-10-20 10:39:21
    那么,当我们需要更新 mapping 时,该如何是好呢? 基本思路 当我们在创建一条索引时,添加好 mapping 后,可设置一个 alias 指向该索引,然后生产环境采用该 alias 来索引数据。当然,如果没有这样的话,建议...
  • 画图之前总要做好万全准备,收拾桌子、擦擦电脑、打开某黄色蓝色APP点个外卖...有人说这都是浪费时间拖延...怎么这张有特色的Mapping,今天就来一起学习下吧!(某黄给了多少,我蓝骑士双倍)「POI分析」火锅、串...
  • 相当于数据库的表结构的定义,elasticsearch...为了说明mapping的定义,我这里定义了一个简单的模型,就ID,type,和catIds 3个属性,重在说明如何使用java api来定义mapping,具体各field应该如何定义,这里不讨论。 J
  • 相当于数据库的表结构的定义,elasticsearch的...为了说明mapping的定义,我这里定义了一个简单的模型,就ID,type,和catIds 3个属性,重在说明如何使用java api来定义mapping,具体各field应该如何定义,这里不讨论。
  • 如何做系统分层

    2014-07-30 10:20:36
    分类: OOAD 架构设计 2012-11-25 09:44 922人阅读 评论(1) 收藏 举报 设计 数据访问层:有时候也...如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
  • 字段类型由 ElasticSearch 自动推断,但这样有一些问题,比如字段类型推断不准确,默认所有字段都会构建倒排索引等,自定义Mapping就可以解决上述这些问题,本篇经验就分享一下如何构建自定义Mapping以及相关的...
  • 首先,介绍一下用iBATIS的编程模型,大家请参考下图:可以看到,iBATIS并没有像Hibernate那样给我们的结构带来大的冲击,我们只要关注在DAO和SQLMapping上面!所以,接下来我就一步一步来说明如何使用iBATIS~~~!...
  • 现在在跟随视频一个框架,想先试试完整的代码能不能在电脑上运行 运行过在pythom的右下角有提示错误,解决了几个,但是还有一个没有解决 提示错误如下 ![图片说明]...
  • Debug Inbound queue找出接受Q7Q传过来的数据,如何转换的。 Outbound queue 前提: run t-code R3AS 一次initial load:DNL_CUST_PROD0 smq1找到outbound queue 在FM: CRS_CUSTOMIZING_EXTRACT打上断...
  • mvc:mapping path="/supplier/*"/>来过滤,可不可以配置不拦截某种请求。如果是按目前这种配置需要拦截请求,当请求太多的时候那就太麻烦了。问题二:我简单地在拦截器里判断session是否有值,如果有表示登录,...
  • update phenix.coupon_hold h left join czk_gm.card_order o on o.mapping_id=h.id left join czk_hxjt.user_info u on u.user_id=o.user_id set h.customer_name=u.name,h.customer_mobile=u.phone_num where h...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 236
精华内容 94
关键字:

如何做mapping