java - Solr 查询返回一个字段的部分匹配项,而不是另一字段

标签 java solr

我的网站上有一个搜索自动完成功能,并且我正在使用 Solr 来查找匹配的文档。我正在尝试获取页面标题的部分匹配,例如 Java* 将匹配 Java、Javascript 等。截至目前,自动完成功能已设置为对页面中的所有文本进行部分匹配,这给出了一些奇怪的结果,所以我决定改用页面标题。但是,当我尝试将页面文本的搜索词从 text 切换为 title 时,查询突然不再获取部分匹配项。这是我原始查询的示例:

q=text:java^2+text:"java"
  &hl=true&hl.snippets=1&hl.fragsize=25&hl.fl=title&start=0&rows=3

不幸的是,为我设置此功能的人不再与我合作,所以我几乎不知道“幕后”发生了什么。我正在使用 Spring/J2EE 作为我的后端,如果这有什么区别的话。

最佳答案

您需要确保该字段不是基于字符串的字段。如果您查看 schema.xml,则可以查找此内容。如果您在字符串字段中使用 Java* 进行搜索,它将仅匹配以 Java* 开头的标题。

另一件事是您需要确保您知道通配符查询区分大小写( see this )。

关于java - Solr 查询返回一个字段的部分匹配项,而不是另一字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6630469/

相关文章:

java - 使用Java从文本文件中读取数据

java - 使用多线程使垃圾收集器使用 100% 的 CPU 时间

java - jsp 中的转义符 '(勾选)

apache - Solr SimplePostTool 使用困惑

mysql - solr 增量导入 "fetches"但不导入 "process"

solr - Cassandra 和SOLR?什么为前端读取查询提供了更好的性能?

Solr - 如何获取所有分面字段的值?

Java 8 : Reference to [method] is ambiguous

elasticsearch - 为什么SOLR有模式而ElasticSearch没有?

java - gradle 测试文件的常规文件系统路径