Solr返回不完整的搜索结果

时间:2016-07-04 09:29:50

标签: xml solr

我是solr的新手,并创建了一个搜索xml文件的核心。搜索工作正常,但似乎并不完整。当我搜索索引文件时,例如使用“A”我得到一个结果,当我使用“ U ”时,即使有与搜索字符串匹配的记录,我也没有得到结果。你能给我一个暗示在哪里检查这个问题吗?在我看来,schema.xml和data-config.xml似乎已正确定义。

提前感谢您的任何建议!

fieldType是“text”,我在这里附加了schema.xml:

`<?xml version="1.0" encoding="UTF-8"?>
<schema name="example" version="1.5">
  <uniqueKey>id</uniqueKey>
  <fieldType name="date" class="solr.TrieDateField"             positionIncrementGap="0" precisionStep="0"/>
  <fieldType name="int" class="solr.TrieIntField"     positionIncrementGap="0" precisionStep="0"/>
  <fieldType name="long" class="solr.TrieLongField"     positionIncrementGap="0" precisionStep="0"/>
  <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
  <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>
  <field name="_version_" type="long" indexed="true" stored="true"/>
  <field name="idauftrunters" type="string" indexed="true" required="true" stored="true"/>
  <field name="id" type="int" indexed="true" stored="true"/>
  <field name="patientname" type="text" indexed="true" stored="true"/>
</schema>`

萨宾

1 个答案:

答案 0 :(得分:0)

对于名为Johnny U Dawg的人,您的查询应返回结果。

对于名为Johnny U. Dawg的人,您可能需要添加ClassicFilterFactoryLetterTokenizerFactory,并且应该返回结果。

但是,根据我的理解,当您使用 U

查询时,您希望显示“Jes u s Gamez”

这在SOLR中并不简单,最接近此功能的是EdgeNGramFilterFactory,但它只需要第一个字母作为您期望的标记。

实现这一目标的一种方法是编写scriptTransformer(在您的数据配置xml中)并将名称分成每个字母,如this,但在Javascript中。 并将其存储在与您的名称字段(例如命名空间)不同的字段中,并使用copyField将此命名空间添加到文本字段中。