【问题标题】:Search with "Hash sign" in Solr在 Solr 中使用“哈希符号”搜索
【发布时间】:2016-06-21 23:54:22
【问题描述】:

我是 Solr 新手,在优化 solr 中的搜索时遇到问题。 当我搜索“C4902AN#140”时,它首先显示“140”的结果,“C4902AN#140”的结果稍后出现。即在包含“140”的结果之后。但我想要“C4902AN#140”的结果之前结果有“140”。

提前致谢!!!

【问题讨论】:

  • 你的分析是什么?

标签: java php mysql solr


【解决方案1】:

您可能需要检查用于架构文件中字段类型定义的标记器。

如果字段类型有 solr.standardTokenizer,它将删除 # 字符。

您应该考虑提升具有“C4902AN#140”的文档

您可以使用 config 文件夹中的 elevate.xml 文件,只需提及哪个文档首先出现在特定 searchTerm 字符串的结果集中。

【讨论】:

  • 似乎“#”在 elevate.xml 文件中不起作用。只有简单的文本像“foo bar”一样起作用。对标记器有什么想法吗?感谢您的帮助
  • 在模式文件中将 solr.StandardTokenizerFactory 更改为该字段类型定义的 solr.WhitespaceTokenizerFactory(存储值“C4902AN#140”的字段)
【解决方案2】:

您为此使用的分析器应该使用 KeyWordTokenizerFactory 以便您的整个单词不会被标记化,而只会生成一个标记,即生成单词本身。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2013-01-20
    • 2012-06-09
    相关资源
    最近更新 更多