1

プロジェクトにsolrの自動提案機能を統合しようとしています。私はこれを出発点として使用します。それに応じて検索フィールドを変更しました。

私のschema.xml

<field name="name" type="text_suggest" indexed="true" stored="true"/>
<field name="manu" type="text_suggest" indexed="true" stored="true"/>  
<field name="popularity" type="int" indexed="true" stored="true" />

<!-- A variant of textsuggest which only matches from the very left edge -->
<copyField source="name" dest="textnge"/>
<field name="textnge" type="autocomplete_edge" indexed="true" stored="false" />

<!-- A variant of name which matches from the left edge of all terms (implicit truncation) -->
<copyField source="name" dest="textng"/>
<field name="textng" type="autocomplete_ngram" indexed="true" stored="false" omitNorms="true" omitTermFreqAndPositions="true" />

solrconfig.xml の私のリクエスト ハンドラー

<requestHandler class="solr.SearchHandler" name="/ac" default="true" >
    <lst name="defaults">
    <str name="defType">edismax</str>
    <str name="rows">10</str>
    <str name="fl">*,score</str>
    <str name="qf">name^50 manu^20.0 textng^50.0</str>
    <str name="pf">textnge^50.0</str>
    <str name="bf">product(log(sum(popularity,1)),100)^20</str>
    <str name="debugQuery">false</str>
    </lst>
  </requestHandler>

問題は、私の "/ac" ハンドラーが "/select" ハンドラーのように振る舞うことです。「moni」と入力しても何も得られません。しかし、「モニター」と入力すると、モニターを含むドキュメントが返されます。

私は一日中これを試してきましたが、何もうまくいかないようです。どんな助けでも深く感謝します

4

2 に答える 2

0

クエリで "moni" を検索する場合、実際には "moni" キーワードを探していることを明確に示しています。などの「*」を追加して、複数用語のキーワードを探してみてくださいq=moni*

autocomplete_edge (q=textnge:mori)やその他のデータについては、他の fieldType アナライザーを調べることもできautocomplete_ngram (q=textng:mori)ます。

于 2015-02-25T17:17:52.380 に答える