zoukankan      html  css  js  c++  java
  • solr的multivalued使用说明

     solr的schema.xml配置文件在配置Filed的时候,有个属性:

           MutiValued:true if this field may containmutiple values per documents,这个说明有点模糊,下面结合实际应用,列举两个不同的例子

           例子一:一个field有多个值,值来自同一filed

    1.  
      <fields>
    2.  
      <!-- general -->
    3.  
      <field name="id" type="int" indexed="true" stored="true" multiValued="false" required="true"/>
    4.  
      <field name="planTime" type="tdate" indexed="true" stored="false" multiValued="false" />
    5.  
      <field name="state" type="string" indexed="true" stored="false" multiValued="false" />
    6.  
      <field name="overDate" type="string" indexed="true" stored="false" multiValued="false" />
    7.  
      <field name="type" type="int" indexed="true" stored="false" multiValued="false" />
    8.  
      <field name="contactName" type="textComplex" indexed="true" stored="false" multiValued="false" />
    9.  
      <field name="contactTel" type="string" indexed="true" stored="false" multiValued="false" />
    10.  
      <field name="customer" type="textComplex" indexed="true" stored="false" multiValued="false" />
    11.  
      <field name="alias" type="textComplex" indexed="true" stored="false" multiValued="false" />
    12.  
      <field name="englishName" type="textComplex" indexed="true" stored="false" multiValued="false" />
    13.  
      <field name="executor" type="int" indexed="true" stored="true" multiValued="true" />
    14.  
      <!--[1m~K[1m~][1m~W段-->
    15.  
      <field name="keywords" type="text" indexed="true" stored="false" multiValued="true"/>
    16.  
      </fields>

         其中:

    1.  
      <field name="executor" type="int" indexed="true" stored="true" multiValued="true" /
    2.  
       

        最后看下查询效果:

        

           从上图看书,executor这个field可以多个值,任何executor:29 OR executor:40,类似查询都能查出id为3的记录

         附注:使用solrj建此索引时,定义成集合类型即可,如:

    1.  
      @Field
    2.  
      private Set<Integer> executor;
    3.  
       
    4.  
      public Set<Integer> getExecutor() {
    5.  
      return executor;
    6.  
      }
    7.  
       
    8.  
      public void setExecutor(Set<Integer> executor) {
    9.  
      this.executor = executor;
    10.  
      }

           

            例子二:类似综合搜索,结合copyFiled使用,多个Filed拷贝到该Field上

           

              从上图看出keywords区域,是name、introduction、industryName三个的集合,无论搜索name、introduction、industryName中任意一个,都能通过keywords搜索出来。

  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/9407603.html
Copyright © 2011-2022 走看看