gpt4 book ai didi

riak - 我怎样才能要求 Riak 1.4 建立索引,然后能够根据嵌入文档的属性搜索我的文档?

转载 作者:行者123 更新时间:2023-12-02 03:29:47 27 4
gpt4 key购买 nike

使用 Riak 1.4.7

我有一个文档,该文档的一个属性是嵌入文档的数组。以下是文档示例:

{"prospect":true, "name":"HzNUeioPYynsGdXL6iSFvQ",
"contact_email":"contact@HzNUeioPYynsGdXL6iSFvQ.gr",
"e_shops":[{"store_url":"www.store.url.com","display_name":"hello there"},
{"store_url":"www.store2.url.com","display_name":"hello2 there"}]
}

相应的桶启用了索引并且工作正常。例如,下面的搜索命令可以毫无问题地找到对象:

search-cmd search index_name contact_email:contact@HzNUeioPYynsGdXL6iSFvQ.gr

这里的问题是如何通过 store_url 进行搜索。

store_url 是嵌入文档的属性,而嵌入文档又是主文档数组属性的一个元素。

1) 我是否必须指定自定义架构文件才能让索引为这些属性编制索引?

2) 我是否必须使用某种特殊语法进行查询?

最佳答案

默认的 JSON 提取器应该通过将数组中的所有值连接到一个空格分隔的列表中来处理这种情况。嵌套名称通过使用下划线连接它们来处理。因此,在这种情况下,字段 e_shops_store_url 将包含 www.store.url.com www.store2.url.com。您可以正常查询该字段。

我跑了一个简单的例子来演示:

root@node1:~# search-cmd install searchtest

:: Installing Riak Search <--> KV hook on bucket 'searchtest'.
root@node1:~# curl 172.31.0.1:8098/buckets/searchtest/keys/test1 \
-XPUT -H"content-type:application/json" \
-d '{"prospect":true, "name":"HzNUeioPYynsGdXL6iSFvQ",
> "contact_email":"contact@HzNUeioPYynsGdXL6iSFvQ.gr",
> "e_shops":[{"store_url":"www.store.url.com","display_name":"hello there"},
> {"store_url":"www.store2.url.com","display_name":"hello2 there"}]
> }'
root@node1:~# curl 172.31.0.1:8098/buckets/searchtest/keys/test2 \
-XPUT -H"content-type:application/json" \
-d '{"prospect":true, "name":"-HzNUeioPYynsGdXL6iSFvQ",
>"contact_email":"contact@-HzNUeioPYynsGdXL6iSFvQ.gr",
>"e_shops":[{"store_url":"www.store.url.com","display_name":"hello there"},
> {"store_url":"www.store3.url.com","display_name":"hello3 there"}]
>}'
root@node1:~# search-cmd search-doc searchtest e_shops_store_url:www.store.url.com

:: Searching for 'e_shops_store_url:www.store.url.com' / '' in searchtest...

------------------------------

index/id: searchtest/test1
<<"contact_email">> => <<"contact@HzNUeioPYynsGdXL6iSFvQ.gr">>
<<"e_shops_display_name">> => <<"hello there hello2 there">>
<<"e_shops_store_url">> => <<"www.store.url.com www.store2.url.com">>
<<"name">> => <<"HzNUeioPYynsGdXL6iSFvQ">>
<<"prospect">> => <<"true">>

------------------------------

index/id: searchtest/test2
<<"contact_email">> => <<"contact@-HzNUeioPYynsGdXL6iSFvQ.gr">>
<<"e_shops_display_name">> => <<"hello there hello3 there">>
<<"e_shops_store_url">> => <<"www.store.url.com www.store3.url.com">>
<<"name">> => <<"-HzNUeioPYynsGdXL6iSFvQ">>
<<"prospect">> => <<"true">>

------------------------------

:: Found 2 results.
:: Maximum score "0.353553".

关于riak - 我怎样才能要求 Riak 1.4 建立索引,然后能够根据嵌入文档的属性搜索我的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671214/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com