【发布时间】:2014-08-10 16:00:42
【问题描述】:
我有一个包含 Map 类型的 Cassandra 表。我想创建一个 Solr 索引,它允许我搜索 Map 中的所有值(忽略键)。我已经成功地用 Set 类型做到了这一点,并希望有一种方法可以为 Map 做同样的事情。
这是一个例子。
CREATE TABLE company (id text PRIMARY KEY, name text, user_phones map<text,text>);
INSERT INTO company (id, name, user_phones) values ('1', 'Joes Construction', {'userid_52':'1-333-444-5555', 'userid_17':'1-333-222-4444'});
INSERT INTO company (id, name, user_phones) values ('5', 'Marks Auto', {'userid_7':'1-333-123-4567'});
我只是想使用 solr 索引来查找具有给定电话号码的公司 -- "user_phones:1333*"
不幸的是,我没有找到任何可以让我这样做的东西。我已阅读此页面 - Mapping of Solr types 和此页面 - Using Dynamic Fields。第二页讨论了使用 DynamicFields 但这将迫使我知道我在地图中的键会是什么样子,在我的情况下,我所有的键都是唯一的。如果我有办法简单地提取地图的值并将它们复制到字段中,我会这样做。不幸的是,我还没有弄清楚如何做到这一点。
有没有什么方法可以有效地在 Solr 中搜索 Cassandra 映射的值?
我正在使用 Cassandra 2、Solr 4、DataStax 4。
【问题讨论】:
标签: solr4 cassandra-2.0 datastax