У меня есть два поля в документе solr, «title» и «subject» (оба доступны по умолчанию)
Затем я помещаю две строки в базу данных и ищу их.
Но запрос AND title:"facebook" and subject:"java"
возвращает обе строки.
Стоит только вернуть второй ряд, верно?
<?php
$solr = new SolrClient (array ('hostname' => '127.0.0.1'));
/////// INSERT ////////
if (0)
{
$data = array (
array (
'id' => 100,
'title' => 'Google',
'subject' => 'Java Interface'
),
array (
'id' => 101,
'title' => 'FaceBook',
'subject' => 'Not Java'
)
);
foreach ($data as $input)
{
$doc = new SolrInputDocument();
foreach ($input as $key => $value)
{
$doc->addField ($key, $value);
}
$solr->addDocument ($doc, false, 1000);
}
sleep (3);
}
/////// QUERY ////////
$query = new SolrQuery();
$query->setQuery('title:"facebook" and subject:"java"');
$query->addField('id')->addField('title')->addField('subject');
$resp = $solr->query($query)->getResponse ();
print_r ($resp->response->docs);
?>
Неважно, AND
Ключевое слово должно быть в верхнем регистре.
Других решений пока нет …