Solr 中与 DtSearch 选项对应的高级搜索选项
Posted
技术标签:
【中文标题】Solr 中与 DtSearch 选项对应的高级搜索选项【英文标题】:Advanced Search Option in Solr corresponding to DtSearch options 【发布时间】:2013-01-22 13:12:13 【问题描述】:我们正在使用 solrnet 作为 .net Solr 客户端库,将应用程序中的搜索和索引模块从 DtSearch 替换为 Solr。
我们对 Solr/Lucene 比较陌生,需要一些帮助/指导来了解 Solr 中更高级的搜索选项。
当前应用程序使用 DtSearch 支持以下搜索选项:
1)单词或短语
2)准确的单词或短语
3)不是这些词或短语
4)一个或多个单词("A" OR "B" OR "C")
5)一个词与另一个词的n个词的接近度
6)数值范围 - 从 - 到
7)选项
。 Stemming(search* 查找搜索或搜索)
。同义词(搜索和查找查找或查找)
。在 n 个字母内模糊(p%arts 找到 paris)
。同音异义词(#Smith 也可以找到 Smithe 和 Smythe)
作为示例,生成的搜索查询将发布到 DtSearch 以用于以下用例:
搜索短语:通用集合
准确的短语:linq
不是这些词:sql
以下一个或多个词:ICollection 或 ArrayList 或 Hashtable
接近度:4 个语言单词内的 csharp
选项:
一个。词干
b.同义词
c。 2个字母内模糊
d。同音异义词
搜索查询:generic* collection* generic& collection& #generic #collection g%%eneric c%%ollection "linq" -sql ICollection OR ArrayList OR Hashtable csharp w/4 language
我们已经能够进行简单的搜索(文件中的单数搜索 内容)与 Solr 的亮点。现在我们需要用 Solr/Lucene 替换这些选项。
谁能提供一些关于我们应该寻找什么/在哪里寻找的方向。
【问题讨论】:
【参考方案1】:单词或短语 Solr 提供对字段和跨字段的查询支持,并通过变量提升来控制相关性。 Solr 还提供各种各样的查询,例如短语查询、通配符、匹配前缀
准确的单词或短语 您可以自定义 Solr 以处理短语匹配和精确单词匹配。
不是这些词或短语Negative queries - Solr 支持布尔运算符,其中包括使用 -
或 Not
的否定查询
一个或多个单词(“A” OR “B” OR “C”)Boolean Operators - Solr 支持布尔运算符,包括 AND (+)
OR
语法
一个词与另一个词的 n 个词的邻近度Promixity Search - Solr 支持通过 ~ 运算符后跟斜率(邻近度差异)进行邻近度查询
数字范围 - 从 - 到 Range Queries - Solr 支持数字和日期的范围查询。
选项
词干(搜索*查找搜索或搜索) Stemmer - Solr 具有内置的词干分析器,可以直接开箱即用。它还允许定义新的词干分析器 详情Language Analysis支持多种语言
同义词(搜索和查找查找或查找)Synonym - Solr 通过基于文件的方法支持同义词处理。
n 个字母内的模糊(p%arts 找到巴黎)Fuzzy search - Solr 支持使用 ~ 运算符进行基于模糊的搜索
同音异义词(#Smith 还可以找到 Smithe 和 Smythe)Phonetic search - Solr 提供 phonetic 搜索,允许匹配拼写错误的单词。它开箱即用地支持 4 个可自定义的过滤器。
AnalyzersTokenizersTokenFilters的完整列表
【讨论】:
我是 SOLR 的新手,想实现自己的语音算法或修改SOLR 4.2.1
给出的算法(或者至少想尝试研究它们)但我似乎无法在源代码中找到相关.java
文件的正确位置。你能帮我找到像 Soundex 这样的正确文件吗?
我们还想从 dtSearch 切换到 Solr。我们想知道如何处理 pre/N 和 xfirstword。是否有等效的方法或方法来增强邻近引擎?以上是关于Solr 中与 DtSearch 选项对应的高级搜索选项的主要内容,如果未能解决你的问题,请参考以下文章