首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr文本搜索

Solr文本搜索
EN

Stack Overflow用户
提问于 2018-09-21 12:58:26
回答 1查看 92关注 0票数 0

在Solr中通过查询搜索文档有问题。

该文件如下所示:

代码语言:javascript
复制
{
  "id": "890_03366_00739",
  "text": ["2509412 MARCO GLLMRC86E28L736X  03366 00739 "],
  "_version_": 1612212288969769000
}

如果使用查询text:GLLMRC86E28L736进行搜索,就会正确地找到文档。

如果我尝试使用查询text:GLLMRC86E28L736X,我找不到文档,为什么会发生这种情况?

在我的模式中,字段text被声明为<field name="text" type="text_general" indexed="true" required="true" stored="true"/>

我用的是Solr 7.0.0。

更新

“分析”页面显示了我的字段“文本”和查询GLLMRC86E28L736X的输出

查询GLLMRC86E28L736

GLLMRC86E28L736X搜索

GLLMRC86E28L736搜索

字段类型"text_general“声明为

代码语言:javascript
复制
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.PorterStemFilterFactory"/>
      <filter class="solr.EdgeNGramFilterFactory" maxGramSize="15" minGramSize="2"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.PorterStemFilterFactory"/>
    </analyzer>
  </fieldType>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 09:25:24

您的EdgeNgramFilter有一个maxGramSize设置,该设置切断标记的结尾--在索引时删除X,而在查询时保留X(如果您试图匹配前缀,则应该如此)。

在分析屏幕的左侧,您可以看到它生成GLLMRC86E28L736X版本,但最后一个字符被删除-即在添加最后一个版本之前它停止生成版本。查询仍然是GLLMRC86E28L736X,因为没有标记匹配的GLLMRC86E28L736X (只有GLLMRC86E28L736,因为它在生成之后停止了),所以没有命中。

调整您的字段的maxGramSize,或者搜索一个不执行任何编辑语法的字段,如果您只想得到精确匹配的话。

此外,如果我没记错的话,这不是示例中包含的text_general字段类型的默认表单,因此在将来,如果还包括字段类型,这将是有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52444329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档