search - Solr Ngram Match Woe

标签 search solr lucene full-text-search

这是我的(相当标准的)ngram 模式 --

<fieldType name="ngram" class="solr.TextField" positionIncrementGap="100" stored="false" multiValued="true">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="15"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

现在 laptop_ngram:"g74sx-a"返回 --

<arr name="laptop_ngram">
  <str>ASUS G74SX-A1 17.3-Inch Gaming Laptop</str>
</arr>

但 laptop_ngram:"g74sx-a1"什么也没找到。

顺便说一句,转义“-”没有任何区别。

有什么想法吗?

最佳答案

StandardTokenizerFactory 可能会对术语做一些事情。您可以在分析页面中查看。

因此更改为 WhitespaceTokenizerFactory 可以解决问题。

关于search - Solr Ngram Match Woe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891119/

相关文章:

search - ElasticSearch:-ve在索引时间增强文档

solr - 在 Apache SOLR 中保证提交的最佳方法是什么?

java - lucene中生成倒排索引是否需要保存字段本身

hibernate - Spring MVC代码-部署时抛出HSEARCH000103异常

apache - 使用 Nutch 重新抓取 URL,仅用于更新的网站

algorithm - 数组中的二进制搜索

php - 协助访问 MySQL 的代码

php - 搜索名字和姓氏,按匹配准确度排序

文本字段中的 Solr 范围查询

java - 自定义 QueryResponseWriter 在 solr 7.3.0 中不起作用