Solr搜索是否可以在密钥中包含通配符?

问题描述 投票:0回答:2

我有一个json块另存为solr中的一个文档,

{
    "internal":...
    "internet":...
    "interface":...
    "noise":...
    "noise":...
}

我可以搜索为“ inter *:*”吗?我想找出所有以“ inter”开头的键的内容

不幸的是,我遇到解析器错误,有什么办法可以在密钥中使用通配符进行搜索?

solr solrj solr-search
2个回答
0
投票

不,不是真的。如果提供通配符对您很重要,则必须将其作为copyField进行,实际上是将所有内容复制到单个字段中,然后查询该字段。

只要您使用qf查询处理程序,就可以通过q提供多个字段,而无需在edismax参数中指定每个字段-通常更灵活,但是仍然需要指定每个字段。

还有一个little known feature named "Field aliasing using per-field qf overrides"(至少我不知道)。如果我已经正确解析了一些网络搜索中可以找到的内容,那么您应该可以进行qf。实际上,创建引用这三个字段的f.i_fields.qf=internal internet interface&qf=i_fields别名。您仍然必须明确给它们。


0
投票

您可以使用i_fields。它允许Solr索引您在架构中未明确定义的字段。

如果发现忘记定义一个或多个字段,这将很有用。 Dynamic fields通过在可以添加到Solr的文档中提供一些灵活性,可以使您的应用程序不那么脆弱。

可以像]定义动态字段>

Dynamic fields

请参阅solr文档以获取有关“动态字段”的更多信息。<dynamicField name="*_i" type="int" indexed="true" stored="true"/>

此后创建一个副本字段。将动态字段复制到复制字段中。

一旦完成,就可以在copyField上进行查询。

Dynamic Fields
© www.soinside.com 2019 - 2024. All rights reserved.