Solr返回不完整的搜索结果

问题描述:

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

感谢您的任何建议提前!

的字段类型是“文本”,我重视这里的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>` 

萨宾

+0

什么fieldType用于该字段?它有什么tokenozers和过滤器? –

+0

Solr Admin下的“Analysis”页面显示索引内容与查询字符串的比较结果是什么? – MatsLindh

+0

你可以告诉你正在搜索哪个特定字段,以及在schema.xml中如何分析该字段 –

对于命名约翰尼ü耶人的时候,查询作为是应返回结果。

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

不过,从我个人理解,你想“赫苏斯ü小号加梅斯”显示,当你与ü

这不是SOLR简单的查询,最接近这个功能EdgeNGramFilterFactory但它只需要第一个字母作为您期望的令牌。

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