如何在Solr中查询字符串字段

时间:2019-03-13 14:20:18

标签: solr

我有这个问题。我的查询就是这样

http://localhost:8983/solr/archiveCore/select?q=strSO:EV11777-01 AND DocType:LLP AND PackName:06 Delivery Documents - MiniPack

字段(strSO,PackName,DocType)的类型为 string 。字段类型最初是 text_general 。但是我必须使它们成为 string 。在更改字段类型之前,查询工作正常。但是当我执行 string 时,查询响应什么也没给我。这是怎么了 这是我的查询响应

{
  "responseHeader":{
    "status":0,
    "QTime":4,
    "params":{
      "q":"strSO:EV11777-01 AND DocType:LLP AND PackName:06 Delivery Documents - MiniPack"}},
  "response":{"numFound":0,"start":0,"docs":[]
  }}

1 个答案:

答案 0 :(得分:1)

  

这是怎么了?

这取决于您的字段内容。 请记住,类型=字符串的字段不会被标记化!

请参阅solr文档:https://lucene.apache.org/solr/guide/7_3/field-types-included-with-solr.html(类StrField)

  

字符串(UTF-8编码的字符串或Unicode)。字符串用于较小的字段,不以任何方式标记或分析。它们的硬限制略小于32K。

因此,仅当字段内容与查询内容完全匹配时,您的查询才会与字段匹配。

例如字段内容ABC DEABC DE之类的查询不匹配(查询字母之间缺少空格)

我建议使用solr管理员页面中的solr分析功能,以了解solr如何处理查询。您会在以下网址找到此功能:http://:8983 / solr /#// analysis