java - Apache solr.查询语法解释

标签 java solr

我搞乱了 q 查询的语法:

  1. 如果我写 q=*:* - 我会看到 2 个结果。

  2. 如果我跳过 q - 我什么也没看到

  3. 如果我写 q=price:* - 看到 2 个结果

  4. 如果我写 q=price - 0 个结果

更新

  1. q=price:0 - 1 个结果

您能解释一下这些查询之间的差异吗?

特别是我想了解第四个变体是什么意思?

索引文档:

add><doc>
  <field name="id">3007WFP</field>
  <field name="name">Dell Widescreen UltraSharp 3007WFP</field>
  <field name="manu">Dell, Inc.</field>
  <!-- Join -->
  <field name="manu_id_s">dell</field>
  <field name="cat">electronics</field>
  <field name="cat">monitor</field>
  <field name="features">30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
  <field name="includes">USB cable</field>
  <field name="weight">401.6</field>
  <field name="price">2199</field>
  <field name="popularity">6</field>
  <field name="inStock">true</field>
  <!-- Buffalo store -->
  <field name="store">43.17614,-90.57341</field>
  <field name="cat">XXX</field>
 </doc></add>
<小时/>
<add>
<doc>
  <field name="id">SOLR1000</field>
  <field name="name">Solr, the Enterprise Search Server</field>
  <field name="manu">Apache Software Foundation</field>
  <field name="cat">software</field>
  <field name="cat">search</field>
  <field name="cat">XXX</field>
  <field name="features">Advanced Full-Text Search Capabilities using Lucene</field>
  <field name="features">Optimized for High Volume Web Traffic</field>
  <field name="features">Standards Based Open Interfaces - XML and HTTP</field>
  <field name="features">Comprehensive HTML Administration Interfaces</field>
  <field name="features">Scalability - Efficient Replication to other Solr Search Servers</field>
  <field name="features">Flexible and Adaptable with XML configuration and Schema</field>
  <field name="features">Good unicode support: h&#xE9;llo (hello with an accent over the e)</field>
  <field name="price">0</field>
  <field name="popularity">10</field>
  <field name="inStock">true</field>
  <field name="incubationdate_dt">2006-01-17T00:00:00.000Z</field>
</doc>
</add>

最佳答案

如果您没有给出该值,则它会考虑默认值。正如您的第四个查询

q=price means it searches the default searchable field having value "price" 

这就是为什么您得到 0 结果的原因,因为没有价格是 0 值的。

关于java - Apache solr.查询语法解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138996/

相关文章:

java - Android:在外部存储上写入/读取文件时出现问题

java - 对象如何在 G1(垃圾优先)垃圾收集器上老化?

Solr 增量导入查询正在删除中的所有内容

solr - Lucene:如何在n个单词中至少搜索m个

docker - Solr Cloud无法连接到(随机)Zookeeper节点(完整的Docker设置)

java - 如何将 GridBagConstrains 中的 JLabels 置于顶部

java - Java DatagramSocket 向 255.255.255.255 发送数据包失败

java - Spring Boot @ConfigurationProperties 到 map 的 map 或(嵌套 map /MultiKeyMap)

mysql - solr 数据导入处理程序在本地主机上工作,而不是在服务器上工作

solr - 用户在文本中输入拼写错误时的 Apache Solr 搜索查询