Zend Search Lucene числовой диапазон поиска - PullRequest
4 голосов
/ 19 ноября 2009

Мне трудно определить, как я неправильно понимаю, как Zend Search Lucene индексирует и ищет целые числа в диапазонах.

В следующем примере я ожидаю, что результат будет 1, но всегда 2 (оба результата). Любые советы будут высоко оценены.

<?php

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();

$search = Zend_Search_Lucene::create('test.index');

$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('foo', 'Hello'));
$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', 100));
$search->addDocument($doc);

$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('foo', 'Hello'));
$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', 200));
$search->addDocument($doc);
$search->commit();

var_dump(count($search->find('foo:Hello AND bar:[050 TO 150]')));

1 Ответ

0 голосов
/ 22 ноября 2009

Я бы попробовал изменить команды addField на:

$doc->addField(Zend_Search_Lucene_Field::Keyword('bar', '100'));

То есть используйте строку вместо целого числа. Если это не работает, возможно, вам следует использовать тип Zend_Search_Lucene_Field::Text.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...