xml – Solr – 查询所有字段的最佳做法

前端之家收集整理的这篇文章主要介绍了xml – Solr – 查询所有字段的最佳做法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
schema.xml片段:
<field name="id" type="string" indexed="true" stored="true" required="true" />
   <field name="notes" type="text_general" indexed="true" stored="true"/>
   <field name="missionFocus" type="text_general" indexed="true" stored="true"/>
   <field name="name" type="text_general" indexed="true" stored="true"/>
   <field name="first_name" type="text_general" indexed="true" stored="true"/>
   <field name="last_name" type="text_general" indexed="true" stored="true"/>
   <field name="about_me" type="text_general" indexed="true" stored="true"/>
   <field name="message" type="text_general" indexed="true" stored="true"/>
   <field name="title" type="text_general" indexed="true" stored="true"/>  
   <field name="table_type" type="string" indexed="true" stored="true"/>  

   <field name="text" type="text_general" indexed="true" stored="false" 
          multiValued="true"/>

现在我想搜索所有字段(除了“id”和“table_type”),例如. “你好”.我该怎么办?我真的要写下面的内容吗?

/solr/select/?q=notes:hello missionFocus:hello name:hello first_name:hello ..

我听到有关DisMaxRequestHandler的一些信息,但是如何使用这个处理程序来查询?我需要在solrconfig.xml中更改某些内容吗?

最好的解决方案是建立一个字段,收集这样的所有字段的数据
<field 
    name="collector" 
    type="text_general" 
    indexed="true" 
    stored="false" 
    multiValued="true"
/>

你现在唯一需要做的是将所有字段的内容复制到该字段中:

<copyField source="notes"        dest="collector"/>
<copyField source="missionFocus" dest="collector"/>
<copyField source="name"         dest="collector"/>
....

请注意,必须先定义copyField块,如下所示:

<fields>
....
</fields>

现在,您只能在现场收集器上进行搜索,您将在任何字段中找到任何文本.

猜你在找的XML相关文章