【问题标题】:How to write a solr query如何编写 solr 查询
【发布时间】:2023-03-27 06:14:01
【问题描述】:

我正在尝试将 solr 查询写入 API 以搜索特定票证并以 JSON 格式获取搜索数据。其中一个属性是包含特殊字符的长字符串。我应该怎么写?

这是出错的行,因此返回 0 张票:

assignedTo:tbw:ctv::76987684564353:user/Test-USER-Here

搜索的普通用户字符串是:'tbw:ctv::76987684564353:user/Test-USER-Here'

我试图转义上面的特殊字符,但它返回 0 个文档。

第二个问题,例如如何搜索以“tbw”开头的字符串?

提前致谢!

【问题讨论】:

  • Solr 中的文档是什么样的? assignedTo:"tbw:ctv::76987684564353:user/Test-USER-Here" 之类的查询应该能够找到该文档 - 您可能希望这是一个字符串字段,因为您只是在寻找完全匹配的内容。可以通过将 wt=json 附加到您的查询 url 来完成返回 JSON
  • 不,它以某种方式不起作用..而且我确信它应该返回文件。如果我想搜索以“Here”结尾的字符串,我该怎么写?
  • 在这种情况下,您必须使用通配符 - 如果该字段是字符串字段 - *Here。但通常这可以通过使用ReverseWildcardFilter 和 KeywordTokenizer 来更好地实现 - 或者根据使用情况,使用 ngramfilter。匹配将基于字段类型,因此如上所述,您需要一个字符串字段来匹配精确值。
  • assignedTo:tbw\:ctv\:\:76987684564353\:user/Test-USER-Here yield 是什么意思?

标签: json solr


【解决方案1】:

您可以使用查询字符串在 solr 中搜索以特定字母开头的字符串:tbw*

This is An Amazing tutorial on solr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2020-10-04
    • 2017-12-23
    • 2016-01-17
    相关资源
    最近更新 更多