2017-07-18 12 views
1

Solrで言語検出を有効にしようとしましたが、索引付け後に新しい言語固有のフィールドが表示されません。ここでNutch Solr自動言語検出 - 言語固有のフィールドが表示されない

は、これまでの私の設定です:

solrconfig.xml:

<processor class="org.apache.solr.update.processor.LangDetectLanguageIdentifierUpdateProcessorFactory"> 
       <str name="langid.fl">title</str> 
       <str name="langid.langField">lang_detect</str> 
       <str name="langid.fallback">en</str> 
       <bool name="langid.map">true</bool> 
       <str name="langid.map.lcmap">en:en, zh:zh</str> 
       <bool name="langid.individual">true</bool> 
       <str name="langid.individual.fl">title</str> 
</processor> 
<processor class="solr.LogUpdateProcessorFactory" /> 
<processor class="solr.RunUpdateProcessorFactory" /> 

管理-schema.xmlを:nutch-

<field name="lang123" type="string" indexed="true" stored="true" /> 
<field name="title" type="text_general" indexed="true" stored="true" /> 
<field name="title_en" type="text_en" indexed="true" stored="true" /> 
<field name="title_zh" type="text_cjk" indexed="true" stored="true" /> 

Nutch_HOME/confに/ site.xml:

<property> 
    <name>plugin.includes</name> 
    <value>protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|indexer-solr|scoring-opic|urlnormalizer-(pass|regex|basic)|language-identifier</value> 
</property> 

のSolrに完全な再クロールとインデックス作成を実行した後、これは、文書のための私のサンプル出力です:

{ 
      "tstamp":["2017-07-18T08:44:35.470Z"], 
      "segment":[20170718164424], 
      "digest":["23c66ec3785ca1fe1e71bc636e6f6f37"], 
      "host":["test.com"], 
      "boost":[1.0], 
      "id":"https://test.com", 
      "title":["保新"], 
      "lang_detect":["zh"], 
      "metatag.keywords":["meta keywords here", 
       "meta keywords here"], 
      "url":["http://test.com"], 
      "content":["test test"], 
      "_version_":12312312 
    } 

質問

  1. 'LANG' 欄が表示されない理由は、私は意図的に言語検出フィールドを 'lang_detect'に設定していましたか?
  2. 結果に 'title_zh'、 'title_en'のいずれも表示されません。ステップ/構成が欠落していますか?

ありがとうございます。

答えて

0

私が気づいたことは、あなたが2つの場所でコンテンツの言語を検出しようとしていることです。SolrとNutch、通常はどちらか一方を使用します。 Nutchでlanguage-identifierプラグインを使用している場合は、Nutchだけで識別プロセスが実行されます。基本的にSolr側では、言語を含むドキュメントが1つ手に入りますので、LangDetectLanguageIdentifierUpdateProcessorFactoryプロセッサを使用する必要はありません。

言語がSolr側で識別されるようにするには、Solrプロセッサを使用できます。そのため、Nutchでlanguage-identifierプラグインを使用する必要はありません。

フィールド質問の場合、language-identifierプラグインにはフィールドの名前を変更するオプションがありません(https://github.com/apache/nutch/blob/master/src/plugin/language-identifier/src/java/org/apache/nutch/analysis/lang/LanguageIndexingFilter.java#L76)ので、使用するとインデックスにlangフィールドが表示されます。

2番目の質問では、title_enに何があると思いますか? Nutch/Solrの両方の言語識別がの場合、がテキストの言語を検出し、この分類をフィールド(この場合はlang_detect)に配置します。

+0

です。それで、「タイトル」は言語によって自動検出され、それぞれの「title_en」、「title_zh」フィールドにもコピーされます。 – codeandfootball

+0

Solrの出力で 'lang_detect'フィールドを見ることができるので、Solrでの言語の検出が機能しています。' langid.individual。* 'オプションを削除して、Solr Admin UI 'langid.fl'と同じフィールドを設定しているので、個々の設定で何が起こるでしょうか。私は(正直なところ、この時点で覚えていない)これは過去のhttps://gist.github.com/jorgelbg/fe7944e8ca952074d293cd250100c1dbで使用した設定だったと思う –

関連する問題