数组字段的Solr查询语法

cha*_*bad 11 solr solrnet solr-query-syntax

如何在数组字段中搜索?

我使用solr 4.2和默认设置.我使用SolrNet索引了一些html和pdf文档.以下是使用admin搜索进行搜索时此类文档的示例结果*:*

enter code here
<doc>
<str name="id">2</str>
<date name="last_modified">2011-12-19T17:33:25Z</date>
<str name="author">name</str>
<str name="author_s">name</str>
<arr name="title">
  <str>CALIFORNIA CODES</str>
</arr>
<arr name="content_type">
  <str>application/pdf</str>
</arr>
<str name="resourcename">T01041.pdf</str>
<arr name="content">
  <str> PDF text here </str>
</arr>
<long name="_version_">1431314431195742208</long>
</doc>
Run Code Online (Sandbox Code Playgroud)

使用content:*返回0结果进行搜索.

aru*_*run 12

而不是content:*尝试content:[* TO *].这将获取具有content非空字段的所有文档.

对于查询数组/多值字段,它取决于您想要做什么.如果您有一个多值字段,如:

<arr name="tag_names">
    <str>death</str>
    <str>history</str>
    <str>people</str>
    <str>historical figures</str>
    <str>assassinations</str>
</arr>
Run Code Online (Sandbox Code Playgroud)

你想找到同时具有文件deathhistory作为tag_names然后发出类似查询

q=tag_names:(death AND history)
Run Code Online (Sandbox Code Playgroud)

要进行OR,请使用

q=tag_names:(death OR history)
Run Code Online (Sandbox Code Playgroud)