Lucene是老牌搜索引擎索引工具了，我最早接触是10年夏天在淘宝实习的时候，作为一个小本科生，那是第一次接触到搜索引擎技术，当时的项目是基于Solr做的。再之后的工作虽然都是搜索相关的，但都是自己实现的索引系统。月初入职小麦公社，这边的搜索是基于Lucene做的，所以又开始用了一下Lucene。

# 一吐槽

Exception in thread “main” java.lang.IllegalArgumentException: You cannot set an index-time boost on an unindexed field, or one that omits norms

# 二吐槽(2015.11.03更新)

Deprecated. Use boolean queries with BooleanClause.Occur.FILTER clauses instead

Like MUST except that these clauses do not participate in scoring.

google了一下，找到了当初加FILTER这个feature时的讨论

Now that we have weight-level control of whether scoring is needed or not, we could add a new clause type to BooleanQuery. It would behave like MUST exept that it would not participate in scoring.
Why do we need it given that we already have FilteredQuery? The idea is that by having a single query that performs conjunctions, we could potentially take better decisions. It’s not ready to replace FilteredQuery yet as FilteredQuery has handling of random-access filters that BooleanQuery doesn’t, but it’s a first step towards that direction and eventually FilteredQuery would just rewrite to a BooleanQuery.
I’ve been calling this new clause type FILTER so far, but feel free to propose a better name.