我有一个json块另存为solr中的一个文档,
{
"internal":...
"internet":...
"interface":...
"noise":...
"noise":...
}
我可以搜索为“ inter *:*”吗?我想找出所有以“ inter”开头的键的内容
不幸的是,我遇到解析器错误,有什么办法可以在密钥中使用通配符进行搜索?
不,不是真的。如果提供通配符对您很重要,则必须将其作为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
别名。您仍然必须明确给它们。
您可以使用i_fields
。它允许Solr索引您在架构中未明确定义的字段。
如果发现忘记定义一个或多个字段,这将很有用。 Dynamic fields
通过在可以添加到Solr的文档中提供一些灵活性,可以使您的应用程序不那么脆弱。
可以像]定义动态字段>
Dynamic fields
请参阅solr文档以获取有关“动态字段”的更多信息。
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
此后创建一个副本字段。将动态字段复制到复制字段中。
一旦完成,就可以在copyField上进行查询。
Dynamic Fields