<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[accordall的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/accordall</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; accordall]]></copyright><item><title><![CDATA[归并排序]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/109533643</link><guid>https://blog.youkuaiyun.com/accordall/article/details/109533643</guid><author>accordall</author><pubDate>Fri, 06 Nov 2020 16:02:43 +0800</pubDate><description><![CDATA[package com.study.sort;

import java.util.Arrays;

/**
 * 参考：https://www.cnblogs.com/chengxiao/p/6194356.html
 *8  4  5  7  1  3  6  2
 *1、将原始数组分割为最小数组序列，先将子序列进行排序，然后向上归并；
 *
 * mergeItemStart==&gt;:startIndex:0   midIndex:0  endIndex:1 handLen:2
 * array:]]></description><category></category></item><item><title><![CDATA[快速排序]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/109495711</link><guid>https://blog.youkuaiyun.com/accordall/article/details/109495711</guid><author>accordall</author><pubDate>Wed, 04 Nov 2020 17:58:45 +0800</pubDate><description><![CDATA[package com.study.sort;

/**
    快速排序O（nlogn）效率高于线性排序（插入，选择冒泡）
 * 1.在待排序的N个记录中任取一个元素(通常取第一个记录)作为基准，称为基准记录；
 * 2.定义两个索引 left 和 right 分别表示“首索引” 和 “尾索引”，key 表示“基准值”；
 * 3.首先，尾索引向前扫描，直到找到比基准值小的记录(left != righ)，并替换首索引对应的值；
 * 4.然后，首索引向后扫描，直到找到比基准值大于的记录(left != ]]></description><category></category></item><item><title><![CDATA[插入选择冒泡排序]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/109495682</link><guid>https://blog.youkuaiyun.com/accordall/article/details/109495682</guid><author>accordall</author><pubDate>Wed, 04 Nov 2020 17:57:10 +0800</pubDate><description><![CDATA[package com.study.sort;

import java.util.Arrays;

/**
 * 性能：插入&gt;选择&gt;冒泡   O(n2)
 */
public class Linesort extends BaseSort{
    public static void main(String[] args) {
        int len=10;
        int []array=genArray(len);
        bubbleSort(array);
/]]></description><category></category></item><item><title><![CDATA[查询之Search Template 和 Index Alias]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108713283</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108713283</guid><author>accordall</author><pubDate>Mon, 21 Sep 2020 16:34:09 +0800</pubDate><description><![CDATA[Search Template
Search Template可以用于程序后端层面和es后端层面解耦
DELETE _scripts/tmdb

GET _scripts/tmdb

#定义1个_script
POST _scripts/tmdb
{
  "script": {
    "lang": "mustache",
    "source": {
      "_source": [
        "title","overview"
      ],
      "size": 20,
   ]]></description><category></category></item><item><title><![CDATA[查询之QueryContext&FilterContext]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108704779</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108704779</guid><author>accordall</author><pubDate>Mon, 21 Sep 2020 16:02:17 +0800</pubDate><description><![CDATA[bool查询
包含1个或多个查询子句组合，总共包含4个子句，其中2个影响算分QueryContext（must,should），2种不影响算分FilterConext(must_not,filter)。
bool查询中，如果没有must条件，should中必须至少满足一条查询；
bool 查询子查询出现顺序不影响，
数据准备
POST /products/_bulk
{ "index": { "_id": 1 }}
{ "price" : 10,"avaliable":true,"date":"2018-0]]></description><category></category></item><item><title><![CDATA[单字符串多字段Disjunction max query & Mutil Match]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108712312</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108712312</guid><author>accordall</author><pubDate>Mon, 21 Sep 2020 16:00:52 +0800</pubDate><description><![CDATA[单字符串多字段查询-Disjunction max query
数据准备
标题：文档1中出现"Brown"
博客内容：文档1中出现"Brown"
文档2中出现"Brown fox",其保持和查询一致的顺序
算分过程：
1、查询should语句中的两个查询
2、把子句查询结果评分相加
3、乘以匹配语句总数
4、除以所有语句总数
DELETE blogs

PUT /blogs/_doc/1
{
    "title": "Quick brown rabbits",
    "body":  "Brown ra]]></description><category></category></item><item><title><![CDATA[Term查询和全文查询]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108661390</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108661390</guid><author>accordall</author><pubDate>Fri, 18 Sep 2020 17:00:30 +0800</pubDate><description><![CDATA[一、Term查询
对输入条件作为一个整体，不做分词，在倒排索引中找到准确的词项，并算分
Term Level Query:Term Query/Range Query/Exsits Query/Prefix Query /Wilcard Qery
可以通过Constant Score将查询转换成一个Filtering,避免TF-DF算分，并利用缓存，提升性能
DELETE products
PUT products
{
  "settings": {
    "number_of_shards": 1
  ]]></description><category></category></item><item><title><![CDATA[结构化搜索(日期，布尔，数字)]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108663818</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108663818</guid><author>accordall</author><pubDate>Fri, 18 Sep 2020 16:59:58 +0800</pubDate><description><![CDATA[机构化搜索
只对结构化的数据进行搜索，包括日期，布尔，数字；
对这些数字可以进行逻辑操作，比如比较数字或时间的范围，或判断两个值的大小。

结构化文本可以做精确匹配或者部分匹配；Term查询/Prefix前缀查询
结构化的结果只有“是”或者“否”两个值：根据场景需要决定结构化搜索是否需要打分



...]]></description><category></category></item><item><title><![CDATA[关于Analyzer]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108648814</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108648814</guid><author>accordall</author><pubDate>Thu, 17 Sep 2020 18:01:16 +0800</pubDate><description><![CDATA[分词
1、 精确字段v.s Full Text
es会为每个字段创建一个倒排索引，但遇到精确字段（keyword）不会做这一操作；
1、精确字段keyword：精确查找，不会分词，主要的类型包括数字，日期或者一个精确的字符串可以设置为此类型
2、text：全文搜索字段，需要参与分词

...]]></description><category></category></item><item><title><![CDATA[Mapping相关]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108644747</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108644747</guid><author>accordall</author><pubDate>Thu, 17 Sep 2020 17:23:22 +0800</pubDate><description><![CDATA[一、动态mapping
1、dynamic值的影响
dynamic设置的值的影响如下表:





true
false
strict




文档可以被索引
YES
YES
NO


字段可以被索引
YES
NO
NO


Mapping可以被更新
YES
NO
NO


2、实验脚本

#查询所有索引
GET _cat/indices

#写入文档，查看 Mapping
#默认动态mapping
PUT mapping_test/_doc/1
{
  "firstName":"Chan",
  "las]]></description><category></category></item><item><title><![CDATA[实验-父子文档查询]]></title><link>https://blog.youkuaiyun.com/accordall/article/details/108628823</link><guid>https://blog.youkuaiyun.com/accordall/article/details/108628823</guid><author>accordall</author><pubDate>Wed, 16 Sep 2020 20:03:17 +0800</pubDate><description><![CDATA[提示：本文基于es7.6.1

文章目录一、描述二、方案设计1、模型设计2、示例三、实验开始1.需求2.设置Mapping3.数据准备4.搜索

一、描述

模型
1个系统有多个策略，1个策略可以授予多个用户，1个用户有多个策略
关系映射
系统(1)—策略(N)----用户(N)
更新评率
系统信息、用户信息一般不会频繁更新；而策略信息

二、方案设计
1、模型设计
采用es的父子文档模型
系统subsystem—父
策略Policy—子
用户—孙
2、示例

系统信息：
UM ,AD
策略信息：
UM具有]]></description><category></category></item></channel></rss>