Mar*_*eba 6 solr cassandra solr-query-syntax datastax-enterprise
我想使用solr_query查找结果,其中地图类型的字段包含给定的键值对。
我正在尝试创建与此类似的查询:
SELECT * FROM my_table WHERE pathId= 5 AND solr_query='validity: [1970-01-01T00:01:00 TO *] ’ AND metadata[1] = '2' LIMIT 1 ALLOW FILTERING;
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM my_table where metadata['1'] = '2' AND solr_query=$${ "q": "pathid:5", "fq": "validity:[1970-01-01T00:01:00 TO *]";
Run Code Online (Sandbox Code Playgroud)
但是每次我得到ServerError: java.lang.IllegalArgumentException: Search queries must have only one index expression.错误。
我希望能够以某种方式在'where'子句- pathid validity和中查询这3个条件metadata。是否可以查询在内部包含给定键值对的映射solr_query,或者还有其他方法可以做到这一点?
我在字段上创建了搜索索引:
create SEARCH index on my_table with columns validity, pathId, metadata;
Run Code Online (Sandbox Code Playgroud)
Cassandra 地图字段在 DSE 搜索中作为动态字段进行处理。为了使用这些功能,地图键遵循模式非常重要<fieldname>_<key>。因此,在您的情况下,您必须使用以下形式插入键metadata_key1,metadata_key2...
如果遵循该命名约定,则可以按如下方式查询数据:
SELECT * FROM my_table where solr_query=$${ "q": "pathid:5 AND metadata_key1:2", "fq": "validity:[1970-01-01T00:01:00 TO *]";
Run Code Online (Sandbox Code Playgroud)
此处记录了 DSE 搜索中动态字段的使用。
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |