如何前缀匹配一个文档值->在lucene搜索引擎如Solr,ElasticSearch搜索项

2w2cym1i  于 2023-01-29  发布在  ElasticSearch
关注(0)|答案(1)|浏览(169)

我们需要从<document value> -> <search term>中匹配前缀。在Solr、ElasticSearch(<search term> -> <document value>)中可以反向匹配
示例:

Search term -> "traveling the world"
Document field value -> "travel"

不确定如何对此查询进行前缀匹配或模糊处理,以便我们可以获得此文档结果。
前缀匹配的工作方式如下"travel*"
检索词-〉"travel"
单据字段值-〉"traveling the world"

mzillmmw

mzillmmw1#

尝试在字段定义中使用PorterStemFilterFactory。

<filter class="solr.PorterStemFilterFactory"/>

您的定义可能如下所示:

<analyzer type="index">
  <tokenizer class="solr.StandardTokenizerFactory "/>
  <filter class="solr.PorterStemFilterFactory"/>
</analyzer>

下面是输入和输出:

在:“跳跳跳”
要筛选的标记化程序:“跳转”、“正在跳转”、“已跳转”
输出:“跳”,“跳”,“跳”

还有另一种替代方法,称为solr.KStemFilterFactory,它的攻击性较低。

相关问题