4

我们使用 solrnet 作为 .net Solr 客户端库,将应用程序中的搜索和索引模块从 DtSearch 替换为 Solr。

我们对 Solr/Lucene 比较陌生,需要一些帮助/指导来了解 Solr 中更高级的搜索选项。

当前应用程序使用 DtSearch 支持以下搜索选项:

1)单词或短语

2) 准确的单词或短语

3)不是这些词或短语

4)一个或多个单词(“A” OR “B” OR “C”)

5)单词与另一个单词的n个单词的接近度

6)数值范围 - 从 - 到

7)选项

. 词干(搜索* 查找搜索或搜索)

. 同义词(搜索和查找查找或查找)

. 在 n 个字母内模糊(p%arts 找到 paris)

. 语音同音异义词(#Smith 还可以找到 Smithe 和 Smythe)

例如,为以下用例生成的搜索查询将发布到 DtSearch:

  1. 查询词语:通用集合

  2. 准确的短语:linq

  3. 不是这些话:sql

  4. 这些词中的一个或多个:ICollection 或 ArrayList 或 Hashtable

  5. 接近度: csharp 在 4 个语言单词内

  6. 选项:

    一种。词干

    湾。代名词

    C。2个字母内模糊

    d。同音异义词

    搜索查询:generic* collection* generic& collection& #generic #collection g%%eneric c%%ollection "linq" -sql ICollection OR ArrayList OR Hashtable csharp w/4 语言

我们已经能够使用 Solr 进行简单的搜索(文件内容中的单数词搜索)。现在我们需要用 Solr/Lucene 替换这些选项。

任何人都可以就我们应该寻找什么/在哪里提供一些指导。

4

1 回答 1

3
  1. 单词或短语
    Solr 提供对字段和跨字段的查询支持,并通过变量提升来控制相关性。Solr 还提供各种查询,如短语查询、通配符、匹配前缀

  2. 准确的单词或短语
    您可以自定义 Solr 以处理短语匹配和准确的单词匹配。

  3. 不是这些词或短语
    否定查询- Solr 提供对布尔运算符的支持,其中包括使用-或使用的否定查询Not

  4. 一个或多个单词(“A” OR “B” OR “C”)
    布尔运算符- Solr 提供对布尔运算符的支持,其中包括AND (+) OR语法

  5. 与另一个单词的 n 个单词的邻近度
    搜索- Solr 支持通过 ~ 运算符后跟 slop(邻近度差异)进行邻近度查询

  6. 数字范围 - 从 - 到 范围查询- Solr 支持数字和日期的范围查询。

  7. 选项

    • Stemming(search* 查找搜索或搜索) Stemmer - Solr 具有内置的词干分析器,可以直接开箱即用。它还允许为各种语言定义新的词干分析器
      详细语言分析支持

    • 同义词(搜索和查找查找或查找)
      同义词 - Solr 通过基于文件的方法支持同义词处理。

    • 在 n 个字母内模糊(p%arts 找到巴黎)
      模糊搜索- Solr 支持使用 ~ 运算符进行基于模糊的搜索

    • 语音同音异义词(#Smith 还可以找到 Smithe 和 Smythe)
      语音搜索- Solr 提供语音搜索,允许匹配拼写错误的单词。它具有对 4 个可以定制的过滤器的开箱即用支持。

AnalyzersTokenizersTokenFilters的完整列表

于 2013-02-07T07:57:40.833 回答