Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 如何在elasticsearch中获取搜索词列表的单词上下文?_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nlp - Fatal编程技术网 elasticsearch 如何在elasticsearch中获取搜索词列表的单词上下文?,elasticsearch,nlp,elasticsearch,Nlp" /> elasticsearch 如何在elasticsearch中获取搜索词列表的单词上下文?,elasticsearch,nlp,elasticsearch,Nlp" />

elasticsearch 如何在elasticsearch中获取搜索词列表的单词上下文?

elasticsearch 如何在elasticsearch中获取搜索词列表的单词上下文?,elasticsearch,nlp,elasticsearch,Nlp,我刚刚建立了我的第一个elasticsearch集群并上传了几千个文档。现在,我想执行一个相对简单的任务:我有一个搜索词列表,对于每个词,我想获得数据库中包含此搜索词以及单词上下文的文档列表(搜索词前5个单词,搜索词后5个单词) 有没有一个简单的方法可以做到这一点?我已经搜索了很多,但没有找到满意的答案 示例 我有一个数据库,其中有一个文档(id:1):“狗跑上了树。” 希尔去放一只黄色的风筝。他看起来很高兴。” 我有一个搜索词:“希尔” 我想写一个请求,返回id 1和 前面的5个词(“狗跑上

我刚刚建立了我的第一个elasticsearch集群并上传了几千个文档。现在,我想执行一个相对简单的任务:我有一个搜索词列表,对于每个词,我想获得数据库中包含此搜索词以及单词上下文的文档列表(搜索词前5个单词,搜索词后5个单词)

有没有一个简单的方法可以做到这一点?我已经搜索了很多,但没有找到满意的答案

示例

  • 我有一个数据库,其中有一个文档(id:1):“狗跑上了树。” 希尔去放一只黄色的风筝。他看起来很高兴。”

  • 我有一个搜索词:“希尔”

  • 我想写一个请求,返回id 1和 前面的5个词(“狗跑上前”)和后面的5个词(“到”) 放一只黄色的风筝。”)搜索词(“山”)


我认为不可能让elasticsearch在匹配前后精确返回n个单词,但您可以使用突出显示功能检索粗略的上下文,然后在应用程序中对结果进行后期处理

默认情况下,elasticsearch会尝试确定什么样的上下文构成一个好的代码段,因此您可能需要通过设置
fragment\u size
(返回代码段的字符数)来增加此窗口的大小

以下是一个查询示例:

{
    "query": {
        "match": {
            "yourtextfield": "hill"
        }
    },
    "highlight": {
        "fields": {
            "yourtextfield": {}
        },
        "boundary_scanner": "word",
        "type": "plain",
        "fragment_size": 150,
        "pre_tags": "",
        "post_tags": ""
    }
}
通常,匹配项封装在
中,但您可以通过
前\u标记和
后\u标记来修改或删除它们。将它们用作标记可能会很有用,这样您就可以知道哪些单词与您的查询完全匹配


另外,请看一下,有许多好的例子可能会对您有所帮助。

您可能应该提供一个具体的例子,说明您正在努力实现的目标。我添加了一个简短的例子。我希望这有帮助,还是还不清楚?