问题标签 [solr-query-syntax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
solr - Solr - 如何构造一个需要 NOT NULL Location 字段的查询
我有一个 Solr 索引,其中包含一组存储为Location
类型的坐标;我想查询该字段具有非空值的文档。
对 Location 字段执行 NOT NULL 检查的查询语法是什么?
java - SolrQuery 不返回少于 3 个字符的结果
我的代码如下:
问题是,当我有超过 3 个字符的查询时,这会返回给我响应,例如,查询字符串“che”会响应结果,但是查询字符串“ch”会不返回任何响应。有没有办法可以覆盖 Solr Query 的 3 个字符的最小长度。
是导致问题的下面的 xml,如果是,我可以使用 java 以编程方式覆盖它吗
提前感谢您的帮助。
谢谢并恭祝安康,
瓦布哈夫
solr - 搜索 Solr 索引时避免重复
我的 Solr 索引有两种类型的用户(Type-A 和 Type-B),可以使用称为“类型”的字段来标识。但是用户有可能在两种类型(A 和 B)下都有条目。
例如,
我的目标是,
当一个用户被搜索并且他只是A型时,他应该在结果中。
当一个用户被搜索并且他只是B型时,他应该在结果中。
- 当搜索用户(如 Jacob)并且他同时属于 A 类和 B 类时,结果中应该只有 A 类的文档。
我们如何通过查询来实现这一点?
提前致谢!
solr - 如何强制执行完全匹配以获得最高优先级?
我正在索引和搜索 5 个字段,这些字段以各种方式进行标记/过滤。
但是,我希望在搜索时,如果我输入的查询与字段 1 中的值匹配,它将是我返回的最高结果。
我将如何定义:
- 场
- 如果 100% 匹配,则以这种方式查询该字段优先
在我的架构中,我有该字段
text_names 是:<fieldType name="text_names" class="solr.StrField" />
我只有一个na_title="somthing is going here" 的条目。但是,当我搜索时,
text_names:somthing is going on here
我会得到很多结果。
需要指出的是,对于查询和索引操作,该字段上没有分析器或过滤器。
solr - 设置 Solr 并查询它
我是新手Solr
。
我找不到合适的文档来帮助我了解我需要添加的所有
solrconfig.xml
内容以及要删除的内容。我的
SolrDocument
将包含id, field1, field2
. 在 2 个字段中,我想更新其中的 1 个。我该怎么办?我尝试了一些东西,但它覆盖了整个文档。/update
不管用。
我必须从一个类中添加documents
和检索它们。Java
solr - 如果用户查询仅包含停用词,是否可以从 Solr 返回所有结果?
如果用户查询仅包含停用词,我希望 Solr 返回所有结果,例如 q=the,(默认情况下 Solr 返回 0 个结果)。我可以打开 Solr 配置中的任何标志,或者我可以使用任何 Solr 查询语法构造来实现此目的吗?
我真的不喜欢在客户端复制停用词逻辑并q=*:*
在所有术语都是停用词时触发的想法。
solr - Querying partial phases with solr
I have a document with persons name and I would like to return those document based on partial names, for example:
Querying: "Joseph Gar*"
Should return
How to make that query using solr?
I have tried:
solr - Solr 4.0,TextField 查询给出 NullPointerException
我有我Solr schema
喜欢的领域-
该description
字段具有某些文档的值,而其余文档则没有数据。当该字段没有数据时,我没有明确设置任何内容,description
因为它不是一个required
字段。
问题是当我使用 - 查询时description:*
。我得到一个NullPointerException
.
我没有更改schema
. 同样,当我查询description:abc
它时,它仍然适用,description:*
并且description:abc*
它给出了一个NullPointerException
.
- 这是正确的行为吗?
text
当我们不必设置时,是否需要为字段赋予“”值?
例外 -
solr - 如何在单个查询中对两个方面查询的结果进行分组..?
我有一组文档,其中包含发件人邮件 ID 和收件人邮件 ID。
当我使用诸如facet.field=senderemailid&facet.limit=10&facet.offset=0
. 这样我就可以获得相应邮件ID发送的邮件总数
结果是
<int name="xxx@e.com" > 157 <int>
<int name="x11@e.com" > 141 <int>
<int name="x22@e.com" > 32 <int>
同样,当我使用 时facet.field=recipientmailid&facet.limit=10&facet.offset=0
,我可以获得相应邮件 ID 收到的邮件总数。
结果是
<int name="x1x@e.com" > 41 <int>
<int name="x22@e.com" > 132 <int>
<int name="x2y@e.com" > 92 <int>
一旦我得到结果,我使用java代码对结果进行分组,每个电子邮件ID收到多少封电子邮件并发送多少封电子邮件。这样我无法实现分页。因为两个结果在某些电子邮件ID上不同。
我的期望是,
<int name="x22@e.com" >
<int name="x22@e.com" >
因此,我可以一口气收到发送的电子邮件和收到的电子邮件计数。我不需要使用 java 代码对结果进行分组。
solr 中是否存在将结果分组到 solr 本身的任何方法,这样我就可以避免 java 代码对结果进行分组,并且可以实现分页
[注意:recipientmailid 和 senderemailid 都是多值的。如果以后有需要我可以将 senderemailid 更改为单值。但是收件人邮件 ID 应该是多值的。]