Lucene (2) 构建索引

Submitted by Lizhe on Wed, 12/20/2017 - 17:19

如果想要搜索存储在硬盘上的文件,电子邮件,网页或是数据库中的数据, Lucene都可以做到

在开始搜索之前, 你必须对搜索内容进行索引.

一个文档Document对象包含若干个域Field, 每个Field都有一个标示名称, 该名称为一个文本值或者二进制值

Lucene可以对域进行3种操作

1 域值可以被索引

2 域被索引后, 还可以选择性的存储项向量

3 域值可以被单独存储

addDocument(Document) 使用默认分析器添加文档, 该分析器在创建IndexWriter对象时指定

 

删除索引中的文档

Lucene (1)

Submitted by Lizhe on Wed, 12/20/2017 - 15:50

在Lucene中, 要经过如下步骤才能获得检索结果

1. 创建分析器

StandardAnalyzer analyzer = new StandardAnalyzer();

2. 将原始内容转换成"文档"

Directory index = new RAMDirectory();

3. 向索引添加文档

IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter w = new IndexWriter(index, config);
addDoc(w, "Lucene in Action", "193398817");
addDoc(w, "Lucene for Dummies", "55320055Z");
addDoc(w, "Managing Gigabytes", "55063554A");
addDoc(w, "The Art of Computer Science", "9900333X");
w.close();

4. 调用查询

security-constraint auth-constraint

Submitted by Lizhe on Mon, 12/18/2017 - 17:42

<security-constraint> 的子元素 <http-method> 是可选的,如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源。 
子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用。如果没有 <auth-constraint> 子元素,这表明任何身份的用户都可以访问相应的资源。也就是说,如果 <security-constraint> 中没有 <auth-constraint> 子元素的话,配置实际上是不起中用的。如果加入了 <auth-constraint> 子元素,但是其内容为空,这表示所有身份的用户都被禁止访问相应的资源。 

所以下面的意思是, 任何人不得访问所有路径下的OPTIONS/TRACE 方法

Java9 (1) Jshell

Submitted by Lizhe on Mon, 11/13/2017 - 15:42

Jshell 本身没有什么特殊之处,跟Python之类的命令行模式都差不多

701

这里需要特殊说明的是

在不使用任何import语句的情况下jshell会自动导入以下包

Activiti 工作流入门 (5) 用户/组 管理

Submitted by Lizhe on Wed, 11/08/2017 - 11:32

在需要人工参与的系统中, 用户和组是身份系统的基础, 在Activiti中用户和组主要是应用于用户任务(UserTAsk)

用api创建和查询一个用户

import org.activiti.engine.IdentityService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.identity.User;
import org.activiti.engine.repository.Deployment;
import org.junit.Test;

public class TestAct {

Activiti 工作流入门 (3) 启动事件

Submitted by Lizhe on Tue, 11/07/2017 - 11:04

每个流总是以启动事件作为入口(可以是不同类型的启动事件)

空启动事件

定时启动事件

异常启动事件

上一个例子中我们已经使用过了空的启动事件

对于定时启动事件也很简单

<startEvent id="timerstartevent1" name="Timer start">
      <timerEventDefinition>
        <timeCycle>R10/PT1M</timeCycle>
      </timerEventDefinition>
    </startEvent>

只需要在对应的startEvent中加入相应的配置就可以了

 

异常启动事件

异常启动事件有一个小的闪电符号,这里我们把它的Error Code 值写成BBB