我的网站上有一个搜索自动完成功能,并且我正在使用 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/