centos yum npm 安装

Submitted by Lizhe on Fri, 12/29/2017 - 16:57

[root@vm2 ~]# sudo curl -sL -o /etc/yum.repos.d/khara-nodejs.repo https://copr.fedoraproject.org/coprs/khara/nodejs/repo/epel-7/khara-nodejs-epel-7.repo
[root@vm2 ~]# sudo yum install -y nodejs nodejs-npm

Lucene (6) Query子类

Submitted by Lizhe on Thu, 12/28/2017 - 15:56

1. TermQuery

对索引中特定项进行搜索, Term是最小的索引片段, 每个Term包含了一个域名和一个文本值.

Term t = new Term("title", "java");

Query q = new TermQuery(t);

使用这个TermQuery对象进行搜索, 可以返回在title域包含单词java的所有文档

注意域值是区分大小写的

2. TermRangeQuery

索引中的各个Term对象会按照字典编排顺序(通过String.compareTo方法)

搜索时包含或不包含起始项和终止项, 如果这个项为空, 那么它对应的端就是无边界的

Query q = new TermRangeQuery("title", new BytesRef("a"), new BytesRef("z"), true, true);

末尾的两个布尔型参数表示 

Lucene (4) 搜索

Submitted by Lizhe on Tue, 12/26/2017 - 11:22

当你查询Lucene索引时, 它将会返回一个包含有序的ScoreDoc对象数组的TopDocs对象.

在输入查询后, Lucene会为每个文档计算评分(用以表示相关性的数值)

IndexSearcher 所有搜索都通过IndexSearcher进行, 它们会调用该类中重载的search方法
Query 封装某种查询类型的具体子类. Query实例将被传递给IndexSearcher的search方法
QueryParser 将用户输入的查询表达式处理成具体的Query对象
TopDocs 保持由IndexSearcher.search()方法返回的具有较高评分的顶部文档
ScoreDoc 提供对TopDocs中没跳搜索结果的访问接口

 

Lucene (3) 并发,线程安全和锁

Submitted by Lizhe on Fri, 12/22/2017 - 15:10

 

任意数量的只读属性的IndexReader类都可以同时打开同一个索引.

无论这些Reader是否属于同一个JVM, 以及是否属于同一台计算机都无关紧要.

但需要记住, 在单个JVM内, 利用资源和发挥效率的最好办法是用线程共享单个的IndexReader实例

 

对于一个索引来说, 一次只能打开一个Writer. Lucene采用文件锁来提供保障. 一旦建立起IndexWriter对象, 系统会立刻分配一个锁给它.

该锁只有当IndexWriter对象被关闭时才会释放.

注意如果你使用IndexReader对象来改变索引的话, 比如修改norms或者删除文档, 这时IndexReader对象会作为Writer使用, 它必须在修改上述内容之前成功地获取Write锁, 并在被关闭时释放该锁  

 

当IndexWriter对象已经打开一个索引时, 你可以同时直接使用IndexReader打开同一个索引.

每个IndexReader对象会得到一个对应时间点的索引"快照", IndexReader只有在IndexWriter提交修改 或者 IndexReader自己被重新打开后才能获知索引的修改情况

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 方法