Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于布尔字段值增强elasticsearch结果_Php_Lucene_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Elastica - Fatal编程技术网 elasticsearch,elastica,Php,Lucene,elasticsearch,Elastica" /> elasticsearch,elastica,Php,Lucene,elasticsearch,Elastica" />

Php 基于布尔字段值增强elasticsearch结果

Php 基于布尔字段值增强elasticsearch结果,php,lucene,elasticsearch,elastica,Php,Lucene,elasticsearch,Elastica,当搜索正确的方法来提升结果时,我得到了很多“静态”信息。当“布尔”字段类型为真时,大多数结果都是关于布尔搜索的 N.B.我们使用的是php elastica库,但如果您只能提供json,那很好,我可以从中管理 我有一个包含5个字段的索引,其中我们有一些内置的增强功能,正如您在这里看到的: array( 'article_id' => array('type' => 'string', 'include_in_all' => FALSE), 'subject' =

当搜索正确的方法来提升结果时,我得到了很多“静态”信息。当“布尔”字段类型为真时,大多数结果都是关于布尔搜索的

N.B.我们使用的是php elastica库,但如果您只能提供json,那很好,我可以从中管理

我有一个包含5个字段的索引,其中我们有一些内置的增强功能,正如您在这里看到的:

array(
    'article_id' => array('type' => 'string', 'include_in_all' => FALSE),
    'subject' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 8),
    'summary' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 5),
    'content' => array('type' => 'string', 'include_in_all' => TRUE, 'boost' => 3),
    'media'  => array('type' => 'boolean', 'include_in_all' => FALSE),
    'pub_date'  => array('type' => 'date', 'include_in_all' => FALSE)
)
我还在一个
\Elastica\Query\Bool()
查询对象上使用
addShould()
方法,通过基于年龄的
pub\u date
字段,成功地在不同级别提升结果

我现在想做的是进一步提高
media
的效果


有人能告诉我如何仅为
媒体
字段添加适当的增强功能吗?

有不同的增强效果的方法,请查看了解更多信息。您的用例看起来很简单,您可以在索引时执行,但我更愿意在查询时执行,只需在您的用例中添加一个should子句,并在需要时对其进行适当的增强:

{
    "bool" : {
        "must" : {
            ...
        },
        "should" : [
            {
                .....
            },
            {
                "term" : { "media" : "TRUE" }
            }
        ],
    }
}

新的子句是可选的,但它使匹配文档的分数更高。如果有必要,您可以为其添加特定的增强功能,其价值主要取决于其他条款。

增强效果的方法多种多样,请查看了解更多信息。您的用例看起来很简单,您可以在索引时执行,但我更愿意在查询时执行,只需在您的用例中添加一个should子句,并在需要时对其进行适当的增强:

{
    "bool" : {
        "must" : {
            ...
        },
        "should" : [
            {
                .....
            },
            {
                "term" : { "media" : "TRUE" }
            }
        ],
    }
}

新的子句是可选的,但它使匹配文档的分数更高。如果有必要,您可以添加一个特定的boost,它的值主要取决于其他子句。

谢谢@javanna,这是我正在寻找的
术语
类型,我不知道在boosting和查找
TRUE
时要使用哪种类型的比较对象,所以这很完美,我认为它会很简单!只是想知道你对这个问题是否有什么见解:@oucil@javanna在媒体为真但必须查询不匹配的情况下,这不会获取结果吗?@khizerbajwa已经有一段时间了,因为我已经看过了,但是没有,bool是必须和应该的混合体,必须满足才能应用它,应该不满足。当它存在时,将术语放入应该会给它带来额外的提升,但不会限制所有的结果。感谢@javanna,这是我正在寻找的
术语
类型,我不知道在提升和寻找
时要使用什么类型的比较对象,所以这是完美的,我认为它会很简单!只是想知道你对这个问题是否有什么见解:@oucil@javanna在媒体为真但必须查询不匹配的情况下,这不会获取结果吗?@khizerbajwa已经有一段时间了,因为我已经看过了,但是没有,bool是必须和应该的混合体,必须满足才能应用它,应该不满足。当它存在的时候,把这个词放进去应该会给它一个额外的推动,但不会把所有的结果都局限于它。