2017-11-22 11 views
0

solrクエリを使用して提案を処理する必要があります。提案はうまくいきます。しかし問題は、提案は条件付きである、すなわち、提案は地理的位置に基づいているということである。次の同等のクエリが欲しいです:フィルタクエリを使用したSolrクエリ

q=<SEARCH TERM>&fq=country:"<search country>" 

私はいくつかのアプローチを試みましたが、機能しません。そのようなシナリオを処理する方法は何ですか?

編集1: 提案者設定:

<searchComponent name="suggest" class="solr.SuggestComponent"> 
<lst name="suggester"> 
<str name="name">mySuggester</str> 
<str name="lookupImpl">FuzzyLookupFactory</str> 
<str name="dictionaryImpl">DocumentDictionaryFactory</str> 
<str name="field">autofill</str> 
<str name="contextField">allowed_location</str> 
<str name="suggestAnalyzerFieldType">text_autofill</str> 
<str name="buildOnStartup">false</str> 
<str name="storeDir">path on file system</str> 
</lst> 
</searchComponent> 
+0

countryフィールドがsolrでインデックス付けされているかどうかを確認しましたか? また、言語に対応するクエリと同等のものが必要ですか? java solrj API呼び出しのように? –

+0

はい、国はsolrでインデックスされています。私は確認するためにsolrの管理コンソールを使用しています。私はsolrコンソールを使用してクエリをトリガーできれば、どの言語でも実行できると考えています。追加情報:selectハンドラを使用して結果を取得できます。しかし、結果は示唆ではありません。提案ハンドラを使用して結果を得たい –

+0

提案ハンドラとcou ntryフィールドスキーマのコードを親切に表示します –

答えて

0

あなたのsolrconfig.xmlで提案者のコンポーネントを設定する必要がありますクエリは以下のフォーム(短縮)である必要があなたの提案をQND

suggest.q=<search_term>&suggest.cfq=<search_country> 

フィルタリングクエリが国のフィールドで機能するようにするには、contextFieldをsolrconfig.xmlに設定する必要があります。

理解のため参照ガイドを参照してくださいlink

+0

私はこの解決策を試してみるつもりです。それ以降は –

+0

私は提案を試してエラーを受けました。私はsolr 6.6を使用しています。これはコンテキストがこのサジェクタでサポートされていないと言います –

+0

My suggester configは です。 mySuggester FuzzyLookupFactory DocumentDictionaryFactory オートフィル = allowed_location "suggestAnalyzerFieldType"> text_autofill false ファイルシステム上のパス

関連する問題