标签: facet

使用SOLR和LowerCaseFilterFactory索引字段

我有一个字段定义为

<fieldType name="text_ws_lc" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

对于此类型的字段,在没有区分大小写的情况下搜索效果很好.但是我希望插入到字段中的原始值不是小写值.是否可以从索引分析器中删除LowerCaseFilterFactory并获得此功能?翼

<fieldType name="text_ws_lc_std" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

solr facet

9
推荐指数
1
解决办法
4169
查看次数

ggplot - 按功能输出的方面

我不确定如何通过对象data元素中的数据函数来进行研究ggplot.在下面的玩具示例中,我想要做的是这样的:

df <- data.frame(x=1:8, y=runif(8), z=8:1)
ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap( ~ (z %% 2))
Run Code Online (Sandbox Code Playgroud)

但这给出了错误:Error in layout_base(data, vars, drop = drop) : At least one layer must contain all variables used for facetting.

我可以通过转换数据框来实现所需的结果:

ggplot(transform(df, z=z%%2), aes(x=x, y=y)) + geom_point() + facet_wrap( ~ z)
Run Code Online (Sandbox Code Playgroud)

但通常不希望使用这样的转换,例如,如果我已经获得了一个ggplot对象,并且我想为它添加一些特殊的方面.

r facet ggplot2

9
推荐指数
1
解决办法
1119
查看次数

ggplot2:如何获得facet_grid()的labeller = label_both和facet_wrap()的ncol选项的合并功能?

我正在使用ggplot2创建一个boxplot.我能够成功创建boxplot但是在ggplot2中将两个要素与facet合并时遇到问题:

>tmpdf

    value  treat FoldChange Gene Pvalue.Adj
 523.8589 Normal     -1.899    A    0.02828
 489.7638 Normal     -1.899    A    0.02828
 642.0126 Cancer     -1.899    A    0.02828
 928.8136 Cancer     -1.899    A    0.02828
 624.7892 Normal     -1.899    A    0.02828
  53.8685 Normal     -7.135    B    0.00012
 184.6473 Normal     -7.135    B    0.00012
  76.2712 Cancer     -7.135    B    0.00012
  48.0607 Cancer     -7.135    B    0.00012
 177.9528 Normal     -7.135    B    0.00012
4581.2847 Normal     -1.886    C    0.04924
7711.3411 Normal     -1.886    C    0.04924
6007.9852 Cancer     -1.886    C    0.04924
5940.9232 Cancer     -1.886    C    0.04924
4433.0949 Normal     -1.886 …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 r-grid

9
推荐指数
1
解决办法
2079
查看次数

如何在ggplot facet wrap标签中使用不同的字体大小?

我想在facet wrap的标签中创建两种不同大小的文本.

例如:

  • 物种X(14号)
  • 总捕获量(n = 133)(12号)

在此输入图像描述

test <- read.csv(paste0(path, "Costello Artvgl2 for Stack.csv"), sep = ";", dec = ",", header = T)

str(test)


test$Wert <- factor(test$Wert, levels = c("one","two","three","four","five","six")) 


test$Sampling.site <- factor(test$Sampling.site, levels = c("Species X Area T","Species Y Area T","Species X Area A","Species Y Area B","Species X Area B","Species Y Area C"))


levels(test$Sampling.site) <-  c("Species X\nTotal catch (n=133)", "Species Y\nTotal catch (n=185)", "Species X\nSampling area A (n=57)", "Species Y\nSampling area B (n=122)",
                             "Species X\nSampling area B (n=76)",  "Species …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2

9
推荐指数
1
解决办法
3460
查看次数

ElasticSearch post_filter和过滤的聚合的行为方式不同

我已经花了整整一个星期的时间没有解决它的希望.我正在关注关于电子商务搜索和分面过滤等的这篇(相当古老的)文章,它到目前为止工作得很好(搜索结果很棒,当在查询中应用过滤器时,聚合效果很好.我正在使用ElasticSearch 6.1.1.

但是因为我想让我的用户在facet上执行多项选择,所以我已经将过滤器移到了post_filter部分.这仍然有效,它正确地过滤结果并准确显示整个文档集的聚合计数.

StackOverflow上阅读这个问题之后,我意识到我必须使用"过滤"聚合和"特殊"聚合来执行一些疯狂的杂技,以相互修剪聚合以显示正确的计数并允许同时使用多个过滤器.我已经要求对这个问题做一些澄清,但还没有回复(这是一个老问题).

我一直在努力解决的问题是在嵌套字段上获取一组过滤聚合,其中所有方面都使用所有过滤器进行过滤.

我的计划是使用常规聚合(未过滤)并保持选定的构面聚合未经过滤(以便我可以选择多个条目),但过滤所有其他聚合与当前选定的构面,以便我只能显示我仍然可以使用的过滤器应用.

但是,如果我在文档上使用相同的过滤器(工作正常),并将过滤器放在过滤的聚合中,则它们无法按预期工作.这些都是错的.我知道在过滤器之前计算聚合,这就是我在我想要的聚合上复制过滤器的原因.

这是我的查询:

  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "fields": [
              "search_data.full_text_boosted^7",
              "search_data.full_text^2"
            ],
            "type": "cross_fields",
            "analyzer": "full_text_search_analyzer",
            "query": "some book"
          }
        }
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

这里没什么特别的,它效果很好并且返回相关结果.

这是我的过滤器(在post_filter中):

"post_filter" : {
    "bool" : {
      "must" : [
      {
        "nested": {
          "path": "string_facets",
            "query": {
              "bool" : {
                "filter" : 
                [
                  { "term" : { "string_facets.facet_name" : "Cover colour" } }, …
Run Code Online (Sandbox Code Playgroud)

search filter facet elasticsearch

9
推荐指数
1
解决办法
662
查看次数

重写ctype <wchar_t>

我正在写一个lambda演算解释器,用于娱乐和练习.我通过添加一个ctype将标点符号定义为空格的构面来获得iostream正确地标记化标识符:

struct token_ctype : ctype<char> {
 mask t[ table_size ];
 token_ctype()
 : ctype<char>( t ) {
  for ( size_t tx = 0; tx < table_size; ++ tx ) {
   t[tx] = isalnum( tx )? alnum : space;
  }
 }
};
Run Code Online (Sandbox Code Playgroud)

(classic_table()可能更干净但是在OS X上不起作用!)

然后在我点击标识符时交换方面:

locale token_loc( in.getloc(), new token_ctype );
…
locale const &oldloc = in.imbue( token_loc );
in.unget() >> token;
in.imbue( oldloc );
Run Code Online (Sandbox Code Playgroud)

网上似乎有一些令人惊讶的lambda演算代码.到目前为止,我发现的大部分内容都充满了unicode ?字符.所以我想尝试添加Unicode支持.

ctype<wchar_t>完全不同于ctype<char>.没有主表; 有两种方法do_isx2 do_scan_is,和 …

c++ unicode iostream facet

8
推荐指数
1
解决办法
721
查看次数

Solr facet计数与选择性排除

我不确定这是否可行,但我希望能够更加密切地控制返回的方面,而不仅仅是包含和排除.

具体来说,我有一个允许用户按'facetA'和'facetB'过滤的界面.它看起来有点像这样

  Filter by
    - facetA:    article (20), image (6), activity (14)
    - facetB:    cats (23), dogs(12), hedgehogs(5)

界面清楚地表明facetA在层次结构中高于facetB.我希望facetA完全持久,facetB也算是持久的,但依赖于facetA的选择.

因此,界面可能会对facetB的更改做出反应:

  Filter by
    - facetA:    article (20), image (6), activity (14)
    - facetB:    cats (23), dogs(12), hedgehogs(5)

即没有一个计数改变.

但它会对这样的facetA变化作出反应:

  Filter by
    - facetA:    article (20), image (6), activity (14)
    - facetB:    cats (15), dogs(4), hedgehogs(1)

即,facetB计数变化以反映在应用facetA过滤器之后可用的内容.

干得好

&facet.field = {!EX = DT} FIELDA&facet.field = {!EX = DT} fieldB

没有实现我想要的,但它很接近.我在solr wiki中发现这方面的说明非常模糊 - 就像我甚至不知道'dt'代表什么.谁能详细说明?我可以更好地控制如何排除计数吗?

solr facet

8
推荐指数
1
解决办法
6748
查看次数

ggplot2 + aes_string通过公式接口在函数内部

交互式地,这个例子工作正常:

p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + facet_grid(. ~ vs)
Run Code Online (Sandbox Code Playgroud)

现在,使用公式接口创建一个函数并使用aes_string它做同样的事情,它不起作用(错误是:) Error in layout_base(data, cols, drop = drop) : At least one layer must contain all variables used for facetting:

tf <- function(formula, data) {
res <- as.character(formula[[2]])
fac2 <- as.character(formula[[3]][3])
fac1 <- as.character(formula[[3]][2])

# p <- ggplot(aes_string(x = fac1, y = res), data = data)
# p <- p + geom_point() # original attempt
p <- ggplot() # This is Joran's trick, but …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2

8
推荐指数
2
解决办法
1676
查看次数

何时以及如何使用std :: locale :: messages?

C++标准定义了六个类别方面的:collate,ctype,monetary,numeric,time,和messages.

我已经知道了前五个的用法,但我不知道何时以及如何使用最后一个:std::locale::messages.

任何说明性例子?

c++ locale internationalization facet c++11

8
推荐指数
1
解决办法
2313
查看次数

ggplot2和facet_wrap:添加geom_hline

我的ggplot有以下代码 - facet_wrap函数在页面上为每个Name绘制20个图,沿x轴有5个Pcode.我想计算每个Name的平均TE.Contr,并将该值绘制为每个图上的水平线(由Facet_wrap拆分).目前,我的代码绘制了ALL TE.Contr的平均值.值而不是平均值TE.Contr.具体名称.

T<-ggplot(data = UKWinners, aes(x = Pcode, y = TE.Contr., color =  Manager)) + geom_point(size =3.5)+ geom_hline(aes(yintercept = mean(TE.Contr.)))
T<-T + facet_wrap(~ Name, ncol = 5)
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2 facet-wrap

8
推荐指数
2
解决办法
2774
查看次数