solr / solrnet-使用通配符通过字母搜索进行信件
-
13-10-2019 - |
题
大家好,我试图为应用程序实施一些搜索功能。
Solr 1.4.1在TomCat7 JDBC连接到MS SQLServer上运行,并使用视图IM索引Solr完成了索引,并且该索引正在工作。
要与Solr进行搜索和通信,我创建了一些测试WCF服务(以后将使用我们的主要服务实施)。
目的是在我们的主要应用程序中实现文本字段。在此文本字段中,用户可以开始键入诸如画笔之类的内容,并随着越来越多的字符输入而逐渐过滤对象列表。
这很好地工作和花花公子,直到一定程度。我在我的查询末端使用通配符的星号,因此,我提出了很多请求,例如p* pa* pa Pain* Paint*
等等。在服务器及其返回结果恰好(实际上很快)。唯一的问题是,一旦用户键入整个单词,查询是画笔*,此时Solr返回0结果。
因此,查询+通配符似乎只能是查询+的东西,而不是查询+什么都没有
我设法在Lucene.net下进行了工作,但Solr并没有像看起来一样做事。
您可以给我任何有关实施此类功能的建议吗?
由于IM使用Solrnet,因此没有太多的代码: http://pastebin.com/txpe4yue
我认为这与分析仪和解析器有关,但我还不到Solr知道在哪里看:)
解决方案 2
茎似乎是引起问题的原因。我使用text_ws的克隆而不是类型的文本修复了它。我对scema.xml的更改: http://pastebin.com/xajzdgy4
茎被禁用,启用小写索引。只要所有查询在较低的情况下都应始终给出结果(如果有的话)。
问题似乎是分析仪不使用通配符,因此,使用通配符时,约翰尼或约翰尼的结果将使约翰尼成为“破碎”的逻辑。
如果您面对的类似问题和我在这里的解决方案不够起作用,您可以将debugquery = on添加到查询字符串中,并查看更多有关发生的事情的信息。这帮助我缩小了问题。
其他提示
我不会在Solr中使用前缀通配符查询的建议。还有其他更适合这样做的机制。看: