【问题标题】:Using Zend Search Lucene with wildcard使用 Zend Search Lucene 和通配符
【发布时间】:2012-06-02 15:50:33
【问题描述】:

我正在尝试使用 Zend 搜索 Lucene 对字段进行通配符。

$index = Zend_Search_Lucene::open("/data/my_index1");

$doc = new Zend_Search_Lucene_Document();

$doc->addField(Zend_Search_Lucene_Field::Text('date',$date->format('dmY')));

$index->addDocument($doc);

$index->updateIndex();

$hits  = $index->find('2012*');

最后一行不起作用,因为我的日期类似于02062012。如果我尝试使用$hits = $index->find('*2012*'); 也不起作用。

有什么想法吗?

【问题讨论】:

  • 您应该检查日期是否正确编入索引。一些分析器不会标记数字和日期。您应该使用 luke 浏览您的索引,看看您的索引是否包含预期的术语。
  • 我认为索引还可以,因为如果我尝试使用 $hits = $index->find('02062012'); 会正常工作。
  • 你试过$index->find('0206*');吗?我不确定,但我认为在查询中使用星号不起作用,因为它正在查找包含 2012 后跟某些内容的术语。

标签: php zend-search-lucene


【解决方案1】:

您还应该验证您的搜索配置是否允许前导“*”,因为这不是 Lucene 中的默认设置。

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多