快速运行solr

来源:互联网 发布:java记事本课程设计 编辑:程序博客网 时间:2024/06/03 19:52

1.怎样快速运行solr?

solr下载下来的example是自带jetty的sevlet容器。也就是说我们打开包走到example目录下 在命令行下运行java –jarstart.jar  就可以了。运行时注意两点:1运行时出现index被锁住的情况是因为对应的core/data目录下有了locked的文件,删除即可。2.出现address已经被绑定。查出端口的进程pid,删去重新运行即可。

 

2.solr如何建立到eclipse?

      1)找到solr_src的web源代码\solr\webapp,全部复制到eclipse下

      2)找到solr的dist目录,把所有的包全部加入工程中,同时把luncene的jar也全部加入到工程中。(如果包不齐全,通常tomcat启动的时候会不成功)

      最小预览

     

      3)配置web中的web.Xml的solr_home中位置。这个solr_home需要自己新建目录,然后把example中的solr目录复制过来(注意:如果你的solr_home是复制examplemitilcore目录,那么还要更改solr.xml,指定默认core,否则索引不成功)。

  <env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>F:/solr-4.6.0/run_test/solr_home/solr</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type></env-entry>


 

多核配置solr.xml

<coresadminPath="/admin/cores" defaultCoreName="core0">    <core name="core0"instanceDir="core0" />     <core name="core1"instanceDir="core1" />  </cores>


 

4)配置solr_home中的conf的scame.xml。其中包括(使用IK分词自定义text

的fieldType;配置uniqueKey;等),配置uniqueKey根据业务需要进行配置,这个值不同意会导致索引成功但是检索不成功的结果出现

<?xmlversion="1.0" ?><schemaname="test" version="1.1">  <types>     <!--IKAnalyzer-->     <fieldTypename="text" class="solr.TextField"autoGeneratePhraseQueries="false">       <analyzerclass="org.wltea.analyzer.lucene.IKAnalyzer"/>                             </fieldType>        <fieldtype name="string"  class="solr.StrField"sortMissingLast="true" omitNorms="true"/>   <fieldType name="long"class="solr.TrieLongField" precisionStep="4"positionIncrementGap="0"/>     <fieldType name="int"class="solr.TrieIntField" precisionStep="4"  positionIncrementGap="0"/>   <fieldType name="float"class="solr.TrieFloatField" precisionStep="4" positionIncrementGap="0"/>   <fieldType name="double"class="solr.TrieDoubleField" precisionStep="4" positionIncrementGap="0"/>   <fieldType name="date"class="solr.TrieDateField" precisionStep="4" positionIncrementGap="0"/>    </types>  <fields>    <!-- general -->  <field name="docfullid"        type="string"   indexed="true"  stored="true"  multiValued="false"required="true"/>  <field name="_version_"type="long"    indexed="true" stored="true"/>   <field name="id"      type="int"   indexed="true"  stored="true"  multiValued="false" />  <field name="username"      type="text"   indexed="true"  stored="true"  multiValued="false" />  <field name="age"     type="int"   indexed="true"  stored="true"  multiValued="false" />  <field name="birthaddress"      type="text"   indexed="true"  stored="true"  multiValued="false" />  <field name="birthday"     type="date"   indexed="true"  stored="true"  multiValued="false" />  <field name="school"      type="text"   indexed="true"  stored="true"  multiValued="false" />  <field name="introduce"      type="text"   indexed="true"  stored="true"  multiValued="false" />    <!-- name,content-->   </fields>  <!-- field to use to determine and enforcedocument uniqueness. --> <uniqueKey>docfullid</uniqueKey>  <!-- field for the QueryParser to use whenan explicit fieldname is absent --> <defaultSearchField>username</defaultSearchField>  <!-- SolrQueryParser configuration:defaultOperator="AND|OR" --> <solrQueryParserdefaultOperator="OR"/> <!-- multi field--> <!--dynamic Field--> <!-- <dynamicField name="*_i"  type="integer"  indexed="true"  stored="true"/> --></schema>


 

5)配置solrconfig.xml。其中requestHandler  name=“/select”这个是solr默认的请求搜索配置,我们在搜索主页中可以不同的搜索配置。Fl代表显示域,df代表默认搜索域,qf代表权重。(注意更改<dataDir>< updateLog>d的目录变量

  <requestHandler name="/select"class="solr.SearchHandler">

       <lst name="defaults">

            <strname="echoParams">explicit</str>

            <strname="defType">edismax</str>

            <strname="q.alt">*:*</str>

            <str name="rows">10</str>

            <strname="fl">username,introduce</str>

            <str name="qf">

                    username^11.0 introduce^5.0

            </str>

       </lst>

  </requestHandler>

样板:

<?xmlversion="1.0" encoding="UTF-8" ?> --><config>  <luceneMatchVersion>4.6</luceneMatchVersion>  <!-- The DirectoryFactory to use for indexes.        solr.StandardDirectoryFactory, thedefault, is filesystem based.        solr.RAMDirectoryFactory is memorybased, not persistent, and doesn't work with replication. -->  <directoryFactoryname="DirectoryFactory"class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>  <dataDir>${solr.core0.data.dir:}</dataDir>    <schemaFactoryclass="ClassicIndexSchemaFactory"/>   <updateHandlerclass="solr.DirectUpdateHandler2">    <updateLog>      <strname="dir">${solr.core0.data.dir:}</str>    </updateLog>  </updateHandler>   <!-- realtime get handler, guaranteed toreturn the latest stored fields    of any document, without the need to commitor open a new searcher. The current    implementation relies on the updateLogfeature being enabled. -->  <requestHandler name="/get"class="solr.RealTimeGetHandler">   <lst name="defaults">      <strname="omitHeader">true</str>    </lst>  </requestHandler>    <requestHandler name="/select"class="solr.SearchHandler">       <lst name="defaults">            <strname="echoParams">explicit</str>            <strname="defType">edismax</str>            <strname="q.alt">*:*</str>            <strname="rows">10</str>            <strname="fl">username,introduce</str>            <str name="qf">                    username^11.0 introduce^5.0            </str>       </lst>  </requestHandler>   <requestHandlername="/replication" class="solr.ReplicationHandler"startup="lazy" />   <requestDispatcherhandleSelect="true" >    <requestParsersenableRemoteStreaming="false"multipartUploadLimitInKB="20480" formdataUploadLimitInKB="20480"/>  </requestDispatcher>   <requestHandler name="standard"class="solr.StandardRequestHandler" default="true" />  <requestHandlername="/analysis/field" startup="lazy"class="solr.FieldAnalysisRequestHandler" />  <requestHandler name="/update"class="solr.UpdateRequestHandler" />  <requestHandler name="/admin/"class="org.apache.solr.handler.admin.AdminHandlers" />      <requestHandlername="/admin/ping" class="solr.PingRequestHandler">    <lst name="invariants">      <strname="q">solrpingquery</str>    </lst>    <lst name="defaults">      <strname="echoParams">all</str>    </lst>  </requestHandler>    <!-- config for the admin interface -->  <admin>    <defaultQuery>马化腾</defaultQuery>  </admin> </config>


 

0 0
原创粉丝点击