Solr-数据中的Edgengram和破折号

更多的

我有一个架构,我希望将两个字段设为edgengram,以便执行“ starts-with”搜索。

其中一个字段中的数据仅包含数字并且可以工作(查询2仅给出以开头的数字2)。另一方面,另一个领域效果不佳。

该字段保存类型的数据FLB-PROFLB-GJENKF-KFE等当我搜索这个领域FLB-PRO,例如,我也得到命中FLB-GJE,这实在不是我所期望做一个“开始,以” -搜索时。搜索PRO使我更接近想要的东西,仅FLB-PRO包含在结果中。

由于这两个字段使用相同的类型,因此我认为它与数据中的破折号有关,但是在避免该问题方面我非常空白。

我的Edgengram字段定义:

<!-- Similar to text_general, but does edgengram filtering (~"startswith") -->
<fieldType name="text_general_edgengram" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="40"/>

    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
  </analyzer>
</fieldType>

编辑:更多修改,似乎查询中的破折号在查询时被视为空白。我曾尝试-在查询中转义,但无法正常工作。

更多的

原来我必须更改令牌生成器,StandardTokenizer将破折号视为空白,因此包含两个由破折号分隔的字母序列的查询将被视为两个单词。

通过改变固定tokenizer class两个queryindexsolr.KeywordTokenizerFactory不管破折号如何,这都将整个字符串视为一个单词。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Solr零件号中的破折号

来自分类Dev

带有破折号,连字符等单词的SOLR问题

来自分类Dev

Solr全名搜索:如何查找包含带通配符的破折号的条目

来自分类Dev

yaml中的破折号和缩进

来自分类Dev

argparse中单破折号和双破折号之间的区别

来自分类Dev

如何在Windows 7/8中键入破折号和破折号?

来自分类Dev

Postgres数据破折号

来自分类Dev

postgres数据破折号

来自分类Dev

根据破折号和“破折号”进行拆分

来自分类Dev

如何写破折号和破折号?

来自分类Dev

Solr:地区和solr.ICUCollationField的用法?

来自分类Dev

Apache Solr与Solr提交和索引的混淆

来自分类Dev

在printf中的破折号

来自分类Dev

在printf中的破折号

来自分类Dev

Solr:使XML作为Solr 4.8.1中的响应

来自分类Dev

Solr:使XML作为Solr 4.8.1中的响应

来自分类Dev

存储在Solr字段中的Solr查询

来自分类Dev

用破折号(-)分隔数据库中的数字

来自分类Dev

想要在数据列中插入破折号

来自分类Dev

Solr dynamicField与弹簧数据

来自分类Dev

SOLR连接与数据复制

来自分类Dev

了解破折号中的管道和重定向

来自分类Dev

Solr EdgeNGramFilterFactory和minGramSize

来自分类Dev

搜索solr和黑子

来自分类Dev

在Solr中超时查询

来自分类Dev

Solr中的DoubleMetaphoneFilterFactory

来自分类Dev

Solr中的多个查询

来自分类Dev

在SOLR中存储标签

来自分类Dev

在Solr中得分