Zend Lucene - 无法搜索数字

时间:2010-05-16 08:13:29

标签: zend-framework lucene zend-search-lucene

使用Zend Lucene我无法在描述字段中搜索数字

像这样添加:

$doc->addField(Zend_Search_Lucene_Field::Text('description', $current_item['item_short_description'], 'utf-8'));

谷歌搜索显示应用以下代码应解决问题,但它没有...:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

任何想法?

3 个答案:

答案 0 :(得分:8)

您必须设置默认分析器两次:在索引过程和搜索过程中。

使用上面的代码行:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());

答案 1 :(得分:1)

您是否在调用Zend_Search_Lucene :: open()之前或之后使用该命令?

事先打电话肯定有​​效。

答案 2 :(得分:0)

我不确定'zend',但是为了处理lucene中的数字,你需要使用以下技巧:

  • 将int放入文档使用以下内容:

    document.Add(new Field(FIELD_SPEC,NumberTools.LongToString(YOUR_INT),Field.Store.YES,Field.Index.UN_TOKENIZED));

  • 查找值使用术语:术语(FIELD_SPEC,NumberTools.LongToString(YOUR_INT))