我正在尝试在SOLR中构建一个查询字符串,它将在字段中搜索引号中的术语,但我希望它返回子字符串匹配。举个例子:
query: "his test"
应该返回点击它找到“他的测试”,“这个测试”,“他的测试”,但不是“测试他的”例如。这有意义吗?构造URL命中/ solr / select /的正确方法是什么?
谢谢!
答案 0 :(得分:5)
要完成您的示例,只需在分析链中启用英语词干分析器和禁用词过滤器即可。禁用词过滤器将留下一个"孔" (位置增量)将被短语查询所尊重,所以"他的"和"这个"两者都映射到一个洞。
干式过滤器将测试和测试映射到同一个术语。Uwe说: 有一个简单的Lucene规则:每当你需要通配符考虑你的分析时,你可能做错了什么: - )
答案 1 :(得分:0)
您的查询应该以标准方式查看,除非您需要使用通配符。 如果要在术语开头添加通配符,则架构中需要ReversedWildcardFilterFactory。查看schema example(行:332-346)
有关具有通配符的Solr如何工作的详细信息,请阅读简短文章:Wildcard queries and how Solr handles them