代码之家  ›  专栏  ›  技术社区  ›  dnagirl

编辑solrconfig.xml时数据配置.xml丢失

  •  0
  • dnagirl  · 技术社区  · 11 年前

    随着solr为多核设置(可能相关,也可能不相关),我有了一个可以工作的测试系统。 solrconfig.xml 住在 /solr-4.4.0/example/multicore/expertise/conf 并且看起来基本上类似于多核的示例solrconfig文件,除了以下几行:

    <dataDir>/data/website_data/solr_cores/expertise</dataDir>
    
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
        <str name="config">/data/website_data/solr_cores/expertise/data-config.xml</str>
      </lst>
    </requestHandler>
    

    由于我想要一个支持语言的solr,所以我用一些选择处理程序更新了solrconfig.xml(以前 handleSelect 曾经 true )和一个新的 updateRequestProcessorChain 。对solrconf.xml的更改如下所示:

    <lib dir="${user.dir}/../contrib/analysis-extras/lucene-libs/" /><!-- relative to solrs 'example' directory -->
    <lib dir="${user.dir}/../contrib/analysis-extras/lib/" />
    <lib dir="${user.dir}/../dist/" regex="solr-langid-.*\.jar" />
    <lib dir="${user.dir}/../contrib/langid/lib/" />    
    
    <!-- required for language detection of input records -->
    <updateRequestProcessorChain name="languages">
        <processor class="solr.LangDetectLanguageIdentifierUpdateProcessorFactory">
            <lst name="invariants">
                <str name="langid.fl">focus, expertise, platforms, partners, participation, additional</str>
                <str name="langid.whitelist">en,fr</str>
                <str name="langid.fallback">en</str>
                <str name="langid.langField">detectedlang</str>
                <bool name="langid.map">true</bool>
                <bool name="langid.map.keepOrig">false</bool>
            </lst>
        </processor>
        <processor class="solr.RunUpdateProcessorFactory" />
    </updateRequestProcessorChain>
    
    <!-- uses language-detecting update.chain -->
    <requestHandler name="/update" class="solr.UpdateRequestHandler">
        <lst name="invariants">
            <str name="update.chain">languages</str>
        </lst>
    </requestHandler>
    
    <requestDispatcher handleSelect="false"> <!-- ORIGINALLY FALSE -->
        <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" formdataUploadLimitInKB="2048" />
        <httpCaching never304="true" />
    </requestDispatcher>
    
    <requestHandler name="/select" class="solr.SearchHandler">
        <lst name="defaults">
            <str name="defType">edismax</str>
            <str name="qf">focus^2, expertise^2, platforms, partners, participation, additional</str><!-- default query looks in these fields, with these boosts -->
            <str name="f.focus.qf">focus_en focus_fr</str><!-- field alias 'focus' means en AND fr versions of focus -->
            <str name="f.expertise.qf">expertise_en expertise_fr</str>
            <str name="f.platforms.qf">platforms_en platforms_fr</str>
            <str name="f.partners.qf">partners_en partners_fr</str>
            <str name="f.participation.qf">participation_en participation_fr</str>
            <str name="f.additional.qf">additional_en additional_fr</str>
        </lst>
    </requestHandler>
    <requestHandler name="/selectEN" class="solr.SearchHandler">
        <lst name="defaults">
            <str name="defType">edismax</str>
            <str name="qf">focus^2, expertise^2, platforms, partners, participation, additional</str>
        </lst>
        <lst name="invariants">
            <str name="fq">detectedlang:en</str>
            <str name="f.focus.qf">focus_en</str>
            <str name="f.expertise.qf">expertise_en</str>
            <str name="f.platforms.qf">platforms_en</str>
            <str name="f.partners.qf">partners_en</str>
            <str name="f.participation.qf">participation_en</str>
            <str name="f.additional.qf">additional_en</str>
            <str name="uf">* -focus_* -expertise_* -platforms_* -partners_* -participation_* -additional_*</str><!-- direct query any field except language-defined ones -->
            <str name="fl">*,focus:focus_en, expertise:expertise_en, platforms:platforms_en, partners:partners_en,
                participation:participation_en, additional:additional_en</str><!-- return lang-defined field when asked for generic field -->
        </lst>
    </requestHandler>
    <requestHandler name="/selectFR" class="solr.SearchHandler">
        <lst name="defaults">
            <str name="defType">edismax</str>
            <str name="qf">focus^2, expertise^2, platforms, partners, participation, additional</str>
        </lst>
        <lst name="invariants">
            <str name="fq">detectedlang:fr</str>
            <str name="f.focus.qf">focus_fr</str>
            <str name="f.expertise.qf">expertise_fr</str>
            <str name="f.platforms.qf">platforms_fr</str>
            <str name="f.partners.qf">partners_fr</str>
            <str name="f.participation.qf">participation_fr</str>
            <str name="f.additional.qf">additional_fr</str>
            <str name="uf">* -focus_* -expertise_* -platforms_* -partners_* -participation_* -additional_*</str><!-- direct query any field except language-defined ones -->
            <str name="fl">*,focus:focus_fr, expertise:expertise_fr, platforms:platforms_fr, partners:partners_fr,
                participation:participation_fr, additional:additional_fr</str><!-- return lang-defined field when asked for generic field -->
        </lst>
    </requestHandler>
    

    现在我得到了错误: Can't find resource '/data-config.xml' in classpath or 'multicore/expertise/conf/', cwd=/solr-4.4.0/example</str>

    数据路径没有更改。data-config.xml文件存在于它应该存在的位置,并且它的权限是正确的。为什么我原来的solrconf.xml找不到data-config.xml,而我的新solrconfxml找不到?

    1 回复  |  直到 11 年前
        1
  •  0
  •   dnagirl    11 年前

    solrconfig.xml中语句的顺序似乎会有所不同。在这种情况下,任何 <lib/> 声明必须在其中一个(或可能全部)之后: <luceneMatchVersion/> , <directoryFactory/ > , <dataDir> , <schemaFactory/> <updateHandler/> .

    最初,我 <lib> 开场后立即排起了长队 <config> 标签这恰好是他们被放在 example 我工作的地方。所以,也许Java只是有些问题,我的solrconfig.xml也没有问题。

    我希望这能帮助到其他人。