当前位置: 首页 > 知识库问答 >
问题:

Solr中的DoubleMetaphoneFilterFactory

雍志新
2023-03-14
<field name="sdn_names" type="doublemetaphonetic" indexed="true" stored="true"     termVectors="true"/>
<!--Defination of doublemetaphonic.-->
<fieldtype name="doublemetaphonetic" stored="false" indexed="true" class="solr.TextField" >
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
  </analyzer>
</fieldtype>

在solr UI中,当我试图搜索sdn_names:abdul~0.50时,它返回0个结果,如果我将查询字符串更改为sdn_names:abdul,则在resultset中得到180条记录。我曾经搜索过解决方案,发现当我们使用doublemetaphonic进行索引时,语音值与原始值不同,计算的两个字符串之间的levenshtein距离非常大,所以结果为0。请为我提供任何链接或重新指挥的解决方案/阅读的问题,因为我是新的Solr。提前致谢

共有1个答案

壤驷经国
2023-03-14

Metapone和通配符不兼容。

首先,Lucene不分析通配符、模糊匹配、regex等术语。因此,您试图根据metaphone代码搜索纯文本。所以,你有:

  • 在索引:aptl中
  • 在查询中:Abdul~0.5
<field name="sdn_names_phonetic" type="doublemetaphonetic" indexed="true" stored="false" termVectors="true"/>
<field name="sdn_names" type="text_standard" indexed="true" stored="true" termVectors="true"/>

<fieldType name="text_standard" class="solr.TextField"> 
  <analyzer class="org.apache.lucene.analysis.standard.StandardAnalyzer"/> 
</fieldType> 
<fieldtype name="doublemetaphonetic" stored="false" indexed="true" class="solr.TextField" >
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
  </analyzer>
</fieldtype>
sdn_names:abdul~0.5 sdn_names_phonetic:abdul
 类似资料:
  • 问题内容: 我正在尝试使用solr获得单词的频率。当我给这个查询: solr给我类似的频率; 但是当我数数单词时;我发现word2的实际计数值为13。Solr在字段中将相同的单词计数为1。 例如; 字段文字包括;。Solr不返回word2的计数2,而是返回1。它为下面两个句子的word2计数返回1; 因此频率返回错误。我检查了构面字段,但没有找到合适的参数。我该如何解决它,使句子中的单词数相同?

  • 在服务器启动时出现以下异常,我想它应该在某个地方有一个默认构造函数。那么,spring data solr和solr多核实现是否存在局限性,这是我的实现, 组织。springframework。豆。工厂BeanCreationException:创建名为“repositoryMembershipIndexService”的bean时出错,该名称在文件[/home/rupanjan/Installa

  • 我在Solr3.4中的中文/日文文本索引有困难。我正在使用DIH导入数据,连接块是 此字段的fieldtype defn为 MySQL字符编码详细信息如 我使用Java参数启动Solr。 输入文本为当我将其导入到Solr中,并使用ID查询该文档时,我看到的文本为 谁能告诉我我哪里错了?

  • 我正在使用Solr搜索我的网页数据语料库。我的solr-indexer将创建几个字段和相应的值。然而,这些字段中的一些我想更经常地更新,例如在该页面上的点击数。这些字段不需要是可索引的,我也不需要对这些字段值执行搜索。然而,我确实想要获取它们,并经常更新它们。我是一个solr新手,所以一个更有描述性的答案和一些运行示例/代码可能会对我有更好的帮助。

  • 我正在尝试在Tomcat上集成solr。我从几个博客上试过 http://www.beingjavaguys.com/2013/01/if-you-want-to-configure-solr4_19.html http://wiki.apache.org/solr/solrtomcat localhost:4040/solr-4.4.0 关于尝试从tomcat manager启动webapp及其

  • solr-sql是针对solrcloud封装的sql编程接口,主要支持SELECT...FROM...WHERE查询语句。 SolrCloud是基于ZooKeeper和Solr的分布式解决方案,为Solr添加分布式功能,用于建立高可用,高伸缩,自动容错,分布式索引,分布式查询的Solr服务器集群。