如何使用 Solr 选择不同的字段值?

2024-04-04

我想做与此 SQL 相同的操作,但使用 Solr 作为我的数据存储。

SELECT
   DISTINCT txt
FROM
   my_table;

什么语法会强制 Solr 只给我不同的值?

http://localhost:8983/solr/select?q=txt:?????&fl=txt

EDIT:因此,分面搜索似乎很合适,但当我调查它时,我意识到我只详细说明了问题的一半。

我的 SQL 查询应该读...

SELECT
   DISTINCT SUBSTR(txt,0,3)
FROM
   my_table;

Solr 有可能做到这一点吗?


分面将为您提供一个包含字段不同值的结果集。

E.g.

http://localhost:8983/solr/select/?q=*%3A*&rows=0&facet=on&facet.field=txt

你应该得到这样的回报:

<response>
<responseHeader><status>0</status><QTime>2</QTime></responseHeader>
<result numFound="4" start="0"/>
<lst name="facet_counts">
 <lst name="facet_queries"/>
 <lst name="facet_fields">
  <lst name="txt">
        <int name="value">100</int>
        <int name="value1">80</int>
        <int name="value2">5</int>
        <int name="value3">2</int>
        <int name="value4">1</int>
  </lst>
 </lst>
</lst>
</response>

查看 wiki 了解更多信息。 Faceting 是 solr 中非常酷的部分。享受 :)

http://wiki.apache.org/solr/SimpleFacetParameters#Facet_Fields http://wiki.apache.org/solr/SimpleFacetParameters#Facet_Fields

注意:分面将显示索引值,即应用所有过滤器后。解决此问题的一种方法是使用 copyfield 方法,以便您可以创建 txt 字段的构面版本。这样您的结果将显示原始值。

wiki 上提供了大量有关分面的文档。或者我确实写了一些屏幕截图..您可以在这里查看:

http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Solr 选择不同的字段值? 的相关文章

随机推荐