【问题标题】:Apache Solr Facet Search with SpaceApache Solr Facet 搜索与空间
【发布时间】:2015-08-04 11:59:02
【问题描述】:

我是 Solr Facet Search 的新手。我正在使用 Apache Solr 搜索来搜索一些数据,我曾在某些列中使用 Facet 来获取计数,但如果该字段中有空格或特殊字符,则它已被单独计算在内。我曾使用此链接Apache Solr facet search exclude space 中的解决方案来避免空间,但我的问题仍然存在

看到上面的链接后我修改的Schema.XML文件是

 <schema name="solr_quickstart" version="1.1">
 <types>
  <fieldType name="string" class="solr.StrField"/>
  <fieldType name="text" class="solr.TextField">
    <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
  </fieldType>
 <fieldType name="text_not_tokenized" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
  </analyzer>
</fieldType>
  <fieldType name="int" class="solr.TrieIntField"/>
 <fieldType name="UUIDField" class="solr.UUIDField"/>
 </types>
 <fields>
<field name="id" type="UUIDField" indexed="true"  stored="true"/>
<field name="caseid" type="int" indexed="true"  stored="true"/>
<field name="casenumber" type="text" indexed="true"  stored="true"/>
<field name="casestatus" type="text" indexed="true"  stored="true"/>
<field name="casetype" type="text" indexed="true"  stored="true"/>
<field name="closeddate" type="text" indexed="true"  stored="true"/>
<field name="courtname" type="text" indexed="true"  stored="true"/>
<field name="courtabbr" type="text" indexed="true"  stored="true"/>
<field name="fileddate" type="text" indexed="true"  stored="true"/>
<field name="judgename" type="text" indexed="true"  stored="true"/>
<field name="lastupdated" type="text" indexed="true"  stored="true"/>
<field name="maindefendant" type="text" indexed="true"  stored="true"/>
<field name="mainplaintiff" type="string" indexed="true"  stored="true"/>
<field name="all" type="string" docValues="true" indexed="true" stored="false" multiValued="true"/>


 </fields>

<defaultSearchField>casenumber</defaultSearchField>
<uniqueKey>id</uniqueKey>
<copyField source="casenumber" dest="all"/>
<copyField source="casestatus" dest="all"/>
<copyField source="casetype" dest="all"/>
<copyField source="courtname" dest="all"/>
<copyField source="courtabbr" dest="all"/>
<copyField source="judgename" dest="all"/>
<copyField source="maindefendant" dest="all"/>
<copyField source="mainplaintiff" dest="all"/>

</schema>

请任何人指导我以正确的方式配置我的Schema.XML 文件

【问题讨论】:

  • 你没有在名为“all”的字段中使用“text_not_tokenized”。它与用于分面的字段相同吗?
  • @AbhijitBashetti 是的
  • 好的...你可以尝试使用“text_not_tokenized”...理想情况下字符串中没有差异而且这个...
  • @AbhijitBashetti 我会尽力让你知道

标签: solr facet


【解决方案1】:

你的问题是分词器。

这会将字段值拆分为不同的术语,并且每个术语在方面查询中都有自己的计数。为避免这种情况,您可以删除标记器(或使用其他标记器)。结果将是,整个领域将是一个术语。如果您的文本字段中有多个“主题”,这是一个问题。

我遇到了同样的问题并尝试使用受保护的字词,这不会应用于标记器。更多(仅?)用于词干:solr not tokenizing protected words

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多