Search API

elasticserach 有两种方式进行文档的搜索:
* 将查询参数放在 restful 请求url后面,作为路径参数
* 将查询内容放在 restful 请求体里面,查询内容为 JSON格式

尝试使用Url带参数查询

GET /bank/_search?q=*&sort=account_number:asc&pretty  】

* q为查询内容字段
* sort 表示查询的结果排序类型

6142337421

elasticsearch 踩坑

一、基础知识

cluster(集群)

elasticsearch里集群的名称是很重要的,一般默认就是elasticsearch,节点一般选择按集群名称加入集群。不同的独立的集群也是按照名称进行区分。 继续阅读

一直以来在springmvc的项目中使用shiro框架,这次尝试在springboot中使用shiro。

一、添加依赖

二、编写配置类

当编写配置类后,编写Controller控制类进行测试,但是怎么都不行,并且报错:

org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton.  This is an invalid application configuration.

因为在springmvc中可以在web.xml中定义shiroFilter,但是在springboot没有web.xml文件,所以需要在shiro配置类中加入:

三、解决shiro对静态资源的限制

springmvc想要在一个页面里调用方法然后在重定向到该页面,同时携带参数。主要是想要模拟搜索。
spring提供了RedirectAttribute类可以用来带参数重定向。利用addFlashAttribute方法进行参数传递。


public String finduser(RedirectAttributes redirectAttributes,String username){
redirectAttributes.addFlashAttribute("username",username);
return "redirect:userlist";
}

但是第一次使用时直接在想要获得参数controller方法的参数里写上同名参数就获得了想要的值。
第二次使用一直造成302 Found,原因是无法取得想要的参数,所有要在另一个controller里使用@ModelAttribute注解参数,得到想要的值。


给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

 

答案

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] a= new  int[2];/存放目标值地址的数组
        int i=0;
        while(i<nums.length){
            for(int j=i+1;j<nums.length;j++){
                if( nums[i]+nums[j]==target){
                    a[0]=i;
                    a[1]=j;
                }
            }
            i++;
        }
        return a;
    }
}

搭建项目时,发生了如下错:
Cannot serialize session attribute org.apache.shiro.subject.support.DefaultSubjectContext_PRINCIPAL
需要实现Serializable 接口

在shiro框架中,想用formauthentication进行登录验证,登录成功后跳转页面。
在shiro配置文件中,配置successUrl无效果。 重写formauthentication的onLoginSuccess方法。
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception
{
WebUtils.getAndClearSavedRequest(request);
WebUtils.issueRedirect(request,response,getSuccessUrl());
return false;

<!DOCTYPE html>
<html>
<head>
<metacharset=”utf-8″ />
<metahttp-equiv=”X-UA-Compatible”content=”IE=edge”>
<title>Page Title</title>
<metaname=”viewport”content=”width=device-width, initial-scale=1″>
<linkhref=”/cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css”rel=”stylesheet”>
</head>
<body>

继续阅读