大家好,我试图为应用程序实施一些搜索功能。

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中使用前缀通配符查询的建议。还有其他更适合这样做的机制。看:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top