今天,犯了个低级错误…做查询的时候发现lucene用queryparser只有完全等值才能匹配。</p>
经过排查原来是在建立索引的时候使用了StringField作为字段(这个只支持全值相等)
改为TextField方可模糊查询……
baidu好多资料是没有发现的……
后来看到官方某个角落的文档发现了这个,才想起来怎么回事……感冒中……
-
<pre STYLE="font-family:" DEJAVU="" SANS="" MARGIN-TOP:="">public class Fieldextends Objectimplements IndexableField</pre>
Expert: directly create a field for a document.Most users should use one of the sugar subclasses:</p>
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">TextField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">Reader</code> or <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">String</code> indexed for full-textsearch
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">StringField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">String</code> indexed verbatim as a singletoken
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">IntPoint</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">int</code> indexed for exact/rangequeries.
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">LongPoint</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">long</code> indexed forexact/range queries.
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">FloatPoint</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">float</code> indexed forexact/range queries.
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">DoublePoint</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">double</code> indexed forexact/range queries.
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">SortedDocValuesField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">byte[]</code> indexed column-wisefor sorting/faceting
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">SortedSetDocValuesField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">SortedSet</code> indexed column-wise forsorting/faceting
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">NumericDocValuesField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">long</code> indexed column-wisefor sorting/faceting
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">SortedNumericDocValuesField</code>: <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">SortedSet</code> indexed column-wise forsorting/faceting
- <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">StoredField</code>: Stored-only value for retrieving insummary results
A field is a section of a Document. Each field has three parts:name, type and value. Values may be text (String, Reader orpre-analyzed TokenStream), binary (byte[]), or numeric (a Number).Fields are optionally stored in the index, so that they may bereturned with hits on the document.
NOTE: the field type is an <code STYLE="font-family:" DEJAVU="" SANS="" PADDING-TOP:="" MARGIN-TOP:="" LINE-HEIGHT:="">IndexableFieldType</code>. Making changes to the state ofthe IndexableFieldType will impact any Field it is used in. It isstrongly recommended that no changes be made after Fieldinstantiation.