6

使用 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());

有什么想法吗?

4

3 回答 3

8

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

使用上面的代码行:

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
于 2011-02-16T07:46:29.070 回答
1

你是在调用 Zend_Search_Lucene::open() 之前还是之后使用了那个命令?

事先调用它肯定有效。

于 2010-06-23T21:57:00.357 回答
0

我不确定“zend”,但要处理 lucene 中的数字,您需要使用以下技术:

  • 要将 int 放置到文档中,请使用以下命令:

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

  • 要查找值,请使用 Term:Term(FIELD_SPEC, NumberTools.LongToString(YOUR_INT))

于 2010-05-16T08:23:56.677 回答