在设置架构时是否内置了构面搜索,或者您是否需要执行某些操作来设置它?
它是否基本上在您设置为可排序的所有字段上开箱即用?
那么你只需使用fq查询语法,它将返回facet xml以及搜索结果?
有没有关于这个的好文章帮助你第一次?
我正在使用redis存储哈希,每个哈希有大约100k条记录.我想在给定的哈希中实现过滤(分面)记录.请注意,哈希条目可以属于n个过滤器.
首先,上述方法在高水平上是否正确?
假设方法没问题,我缺少的是检索HASH条目最有效的实现方法是什么?我是否正确地思考一旦我有HASH键,我应该使用PIPELINE来排队通过每个HASH键的多个HGETALL命令?有更好的方法吗?
我对使用PIPELINE的担心是我相信它会在服务命令时阻止所有其他客户端.我将分页过滤结果,每页500个结果.有多个基于浏览器的客户端执行过滤,更不用说填充SET和HASH的后端进程,如果PIPELINE阻塞,则听起来有很多争用的可能性.任何人都可以提供这方面的观点吗?
如果它有助于我使用2.2.4 redis,则为后端的Web客户端和服务堆栈提供预测.
谢谢,保罗
可以标记特定过滤器,并在分面时排除这些过滤器.在进行多选择分面时通常需要这样做.
stats.field有类似的可能吗?
stats.field={!ex=foo}price // does not work
Run Code Online (Sandbox Code Playgroud)
我有一个价格滑块,我需要最高价格,好像没有设置价格过滤器.
在ggplot2
,使用跨越行和列的构面创建刻面图很容易.有没有"光滑"的方式来做到这一点altair
?facet
文件
可以在一列中绘制构面图,
import altair as alt
from vega_datasets import data
iris = data.iris
chart = alt.Chart(iris).mark_point().encode(
x='petalLength:Q',
y='petalWidth:Q',
color='species:N'
).properties(
width=180,
height=180
).facet(
row='species:N'
)
Run Code Online (Sandbox Code Playgroud)
在一排,
chart = alt.Chart(iris).mark_point().encode(
x='petalLength:Q',
y='petalWidth:Q',
color='species:N'
).properties(
width=180,
height=180
).facet(
column='species:N'
)
Run Code Online (Sandbox Code Playgroud)
但通常情况下,我只想使用多个列/行在网格中绘制它们,即在单个列/行中排列的那些并不意味着任何特定的含义.
例如,看到facet_wrap
来自ggplot2
:http://www.cookbook-r.com/Graphs/Facets_(ggplot2)/#facetwrap
我<f:facet>
用来创建一个表头,我想在它旁边有一个符号.但是,它似乎不能很好地工作.符号未呈现.
JSF:
<h:column id="subject_column">
<f:facet name="header">
<h:commandLink value="Subject" id="sort_by_subjects"
action="#{xxx.sort}">
<f:param id="sortBySubject" name="sortBy" value="SUBJECT"/>
</h:commandLink>
<span>${isAscending}</span>
</f:facet>
<h:outputText value="#{email.emailSubject}"/>
</h:column>
Run Code Online (Sandbox Code Playgroud)
${isAscending}
包含箭头符号?
并表示顺序.我想在旁边展示它<h:commandLink>
.
如何调整我的Y轴以忽略异常值,就像在这篇文章中一样,但是在一个更具挑战性的情况下,我有4个箱图和"自由刻面"布局?
p < - ggplot(molten.DF,aes(x = class,y = SOC,fill = class))+ geom_boxplot()+ facet_grid(layer~.,scales ="free",space ="free")
正如您在我的图中所看到的,考虑Y轴范围内的异常值会使框更难以阅读.如果结果中仍然可以看到一些异常值,那就不重要了,但我想真正关注这些方块!
我有两组X轴约30个类别的数据用于刻面.我将用一些随机数据显示:
dataf <- data.frame(x=c(1:30), A=rnorm(30,20,5), B=rnorm(30,15,0.5))
datam <- melt(dataf, id="x")
ggplot(datam, aes(factor(x), value)) +
geom_bar(stat="identity") +
facet_grid(variable ~ .)
Run Code Online (Sandbox Code Playgroud)
这很可爱,但如果在该图表上再现x轴,则更容易快速读取顶部分组上的类别.然而
ggplot(datam, aes(factor(x), value)) +
geom_bar(stat="identity") +
facet_grid(variable ~ ., scales="free")
Run Code Online (Sandbox Code Playgroud)
对x轴没有影响,因为我猜两个分组的值都是相同的.
如何强制为顶部组和条形图重现X轴?
我的问题类似于将 R ggplot中的直方图中的y轴标准化为比例, 但我想稍微添加一下.
一般来说,我在2x3小平面设计中有6个直方图,我想分别对它们进行标准化.我将尝试在此处创建一个示例数据集以提供一个想法:
hvalues=c(3,1,3,2,2,5,1,1,12,1,4,3)
season=c("fall","fall","fall","fall","winter","winter","winter","winter","summer","summer","summer","summer")
year=c("year 1","year 1","year 2","year 2","year 1","year 1","year 2","year 2","year 1","year 1","year 2","year 2")
group=c("fall year 1","fall year 1","fall year 2","fall year 2","winter year 1","winter year 1","winter year 2","winter year 2","summer year 1","summer year 1","summer year 2","summer year 2")
all=data.frame(hvalues,season,year)
Run Code Online (Sandbox Code Playgroud)
运用
ggplot(all, aes(x=hvalues,group=group)) +
geom_histogram(aes(y=..count../sum(..count..))) +
facet_grid(season ~ year)
Run Code Online (Sandbox Code Playgroud)
给出整体比例(即组合所有方面).我希望每个组的方面都被标准化为1.在我的实际数据中,hvalues不是整数 - 它们是数字的.
我是一个使用R的新手,非常感谢一些帮助.提前致谢!
我已经将我的弹性搜索实现配置为通过映射中的id来对结果进行分析,当我向用户显示该方面时,我需要能够显示代表它的人类可读名称.我需要的数据都存在于映射中,但我不确定如何将其作为方面的一部分返回.当然有可能吗?
考虑下面的例子,我想小面给我一些方法来关联thingId
到thingName
(或其他任何thing
可能需要的属性):
制图
{
thingId,
thingName
}
Run Code Online (Sandbox Code Playgroud)
分面查询
{
"facets":{
"things":{ "terms":{ "field":"thingId" } }
}
}
Run Code Online (Sandbox Code Playgroud)
结果
{
"hits":{
"total":3,
"max_score":1.0,
"hits":[
...
]
},
"facets":{
"things":{
"_type":"terms",
"missing":0,
"total":3,
"other":0,
"terms":[
{
"term":"5",
"count":1
},
{
"term":"4",
"count":1
},
{
"term":"2",
"count":1
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
关于Solr的这个答案建议我将两个属性(thingName
和thingId
)都面对,然后循环遍历两个方面结果集,假设项目的顺序是相同的.我不知道会有多可靠,但这是一个选择.
编辑2
这个答案表明,如果不将两个领域合并为一个单一的价值并且面对这个问题,就不可能做我想做的事情:thingId|thingName
.不理想.
编辑3
这个答案建议将这些值组合成一个字段并在其上进行分面(如上所述),但它使用术语脚本来实现组合,因此不需要我索引值的组合形式.仍然不完美,但似乎是最糟糕的选择.
我正在学习弹性搜索,并希望计算不同的值.到目前为止,我可以计算值,但不是很明显.
以下是示例数据:
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 2,
"RestaurantName": "Restaurant Brian",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 1,
"RestaurantName": "Restaurant Cecil",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 1,
"RestaurantName": "Restaurant Cecil",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试了什么:
curl -XPOST "http://localhost:9200/store/item/_search" -d '{
"size": 0,
"aggs": {
"item": {
"terms": {
"field": "RestaurantName"
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
输出:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3, …
Run Code Online (Sandbox Code Playgroud)