简体   繁体   English

使用 Solarium php 建议查询中的 HTTP 错误问题

[英]HTTP error issue in suggest query using Solarium php

I'm implement suggest query in php codeigiter using solarium.我正在使用日光浴室在 php codeigiter 中实施建议查询。 But while connect to the createSuggester query.但是在连接到createSuggester查询时。 It shows following error line.它显示以下错误行。

An uncaught Exception was encountered
Type: Solarium\Exception\HttpException

Message: Solr HTTP error: OK (404)
HTTP ERROR 404
Problem accessing /solr/../suggest. Reason:

    Not Found
Filename: C:\wamp\www\solariumphp\vendor\solarium\solarium\src\Core\Query\Result\Result.php

Line Number: 59

Backtrace:

File: C:\wamp\www\solariumphp\vendor\solarium\solarium\src\Core\Client\Client.php
Line: 751
Function: __construct

File: C:\wamp\www\solariumphp\vendor\solarium\solarium\src\Core\Client\Client.php
Line: 783
Function: createResult

File: C:\wamp\www\solariumphp\vendor\solarium\solarium\src\Core\Client\Client.php
Line: 978
Function: execute

File: C:\wamp\www\solariumphp\application\controllers\Example.php
Line: 30
Function: suggester

File: C:\wamp\www\solariumphp\index.php
Line: 315
Function: require_once

My sample code is here,我的示例代码在这里,

$query = $this->client->createSuggester();
$query->setQuery('ap ip v'); //multiple terms
$query->setDictionary('suggester');
// $query->setOnlyMorePopular(true);
$query->setCount(10);
// $query->setCollate(true);

// this executes the query and returns the result
$resultset = $this->client->suggester($query);

echo '<b>Query:</b> '.$query->getQuery().'<hr/>';

// display results for each term
foreach ($resultset as $term => $termResult) {
    echo '<h3>' . $term . '</h3>';
    echo 'NumFound: '.$termResult->getNumFound().'<br/>';
    echo 'StartOffset: '.$termResult->getStartOffset().'<br/>';
    echo 'EndOffset: '.$termResult->getEndOffset().'<br/>';
    echo 'Suggestions:<br/>';
    foreach ($termResult as $result) {
        echo '- '.$result.'<br/>';
    }

    echo '<hr/>';
}

// display collation
echo 'Collation: '.$resultset->getCollation();

I'm try to find solution in many resources.我试图在许多资源中找到解决方案。 But the solution is not there.但解决方案不存在。 Plese explain me what/why this issue is happened?请解释一下这个问题是什么/为什么会发生?

you can set the default dictionary in "solrconfig.xml" like this:您可以像这样在“solrconfig.xml”中设置默认字典:

<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
    <str name="name">mySuggester</str>
    <str name="lookupImpl">FreeTextLookupFactory</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">content</str>
    <str name="suggestFreeTextAnalyzerFieldType">suggestTypeLc</str>
    <str name="buildOnStartup">true</str>
    <str name="buildOnCommit">false</str>
</lst>
</searchComponent>

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
    <str name="suggest">true</str>
    <str name="suggest.count">10</str>
    <str name="suggest.dictionary">mySuggester</str>
</lst>
<arr name="components">
    <str>suggest</str>
</arr>
</requestHandler>

and remove this line from your code:并从您的代码中删除这一行:

$query->setDictionary('suggester');

not 'suggester' at $query->setDictionary('suggester') ,please use the name of the suggester like $query->setDictionary('mySuggester')$query->setDictionary('suggester')不是'suggester' ',请使用像$query->setDictionary('mySuggester')这样的建议者的名字

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM