2017-05-11 3 views
1

今日私のdebianサーバでsolr 6.5.1を実装しましたが、pdfテキストコンテンツを取得するのに問題があります。検索はOKです。なぜなら、私の名前、例えば「juan」を照会すると、文書が表示されてしまうからです。しかし、各strの結果には、どのようにするべきかが表示されません。pdfファイルのSolrクエリで強調表示されているコンテンツが返されない

これは、例えばクエリです:

http://localhost:8983/solr/ex/select?q=juan&fl=title&wt=xml&hl=true&hl.snippets=20&hl.fl=content&hl.usePhraseHighlighter=true

そして、これが結果です:

<response> 
    <lst name="responseHeader"> 
     <int name="status">0</int> 
     <int name="QTime">1</int> 
     <lst name="params"> 
      <str name="hl.snippets">20</str> 
      <str name="q">juan</str> 
      <str name="hl">true</str> 
      <str name="fl">title</str> 
      <str name="hl.usePhraseHighlighter">true</str> 
      <str name="hl.fl">content</str> 
      <str name="wt">xml</str> 
     </lst> 
    </lst> 
    <result name="response" numFound="1" start="0"> 
     <doc> 
      <arr name="title"> 
       <str>CV_Juan_Jara_ultimo</str> 
      </arr> 
     </doc> 
    </result> 
    <lst name="highlighting"> 
     <lst name="/solr-6.5.1/mydocs/CV_Juan_Jara_ultimo.pdf"/> 
    </lst> 
</response> 

はまた、ログは、すべてのPDFのテキストを示しています、私はそれが正しくインデックスされたと仮定します(私はpdfコマンド:bin/post -c ex mydocs/CV_Juan_Jara_ultimo.pdf)を使用してください。

私はカールを使用して、スキーマに「コンテンツ」フィールドを追加しました:

curl -X POST -H 'Content-type:application/json' --data-binary '{ 
    "add-field" : { 
    "name":"text", 
    "type":"text_general", 
    "indexed":"true", 
    "stored":"false", 
    "multiValued":"true" 
    } 
}' localhost:8983/solr/ex/schema 

あなたは間違っている可能性が何を知っていますか?

私がやりたいことのすべては私のPDFファイルでトピックを検索し、すべての結果は次のように強調しますです:

http://www.codewrecks.com/blog/index.php/2013/05/27/hilight-matched-text-inside-documents-indexed-with-solr-plus-tika/

答えて

1

それは非常に一般的かつ単純なミスです:保存された「

":" false "は" stored "にする必要があります。" true "は" content "フィールドです。

現在、すべてのハイライターは、[1]使用するためにフィールドを格納する必要があります。解決しよう

[1] https://cwiki.apache.org/confluence/display/solr/Highlighting

+0

感謝を交換してください。私はtrueにストアドを変更しましたが、まだ何もありません。しかし、私は、パラメータ "hl.method = unified"を追加すると、応答の強調表示にフィールドが含まれているが空であることに気付きました。 –

1

:私のために働いたソリューションは、最終的には、このcurlコマンドでスキーマに_text_フィールドを置き換えることでした:_text_フィールドが付属していますので、

curl -X POST -H 'Content-type:application/json' --data-binary '{ 
"replace-field" : { 
"name":"_text_", 
"type":"text_general", 
"indexed":"true", 
"stored":"true", 
"multiValued":"true" 
} 
}' http://localhost:8983/solr/ex/schema 

これは、 "stored":デフォルトでは "false"です。

注:以前このスキーマフィールドにそれをしなかった場合は、あなたの心に再びすべてのファイルのインデックスを作成することを忘れないでください、あなたの速い応答のための

関連する問題