我有4个由Elasticsearch
索引的文档(使用R
中的elastic
库)。
库(弹性)连接<- connect(errors =“complete”)indexName <-“test”index_create(connection,indexName)
text <- data.frame(“full_text”=“这是一只棕色的狗。docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗。docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗。”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗。docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“ia这是一只棕色的狗。”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“苹果这是一只棕色的狗吗?docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一只棕色的狗吗?”)docs_bulk(connection,text,indexName)text <- data.frame(“full_text”=“这是一个喜欢成为的棕色狗苹果吗?”)docs_bulk(connection,text,indexName)
通过使用搜索查询:'dog MUST PRECEDENT that, WITH A MAX_GAP OF 3, BUT MUST NOT INCLUDE .'
我只想找到(返回)最后一个文档。
我尝试了下面的搜索查询,但这不起作用,返回了所有12个文档,因为-如果我是正确的-Elasticsearch没有索引周期。
query <- '{“from”:0,“size”:10000,“查询”:{“bool”:{“must”:[ {“intervals”:{“full_text”:{“all_of”:{“ordered”:true,“intervals”:[ {“match”:{“查询”:“dog”,“max_gaps”:0,“有序”:true } },{“any_of”:{“intervals”:[ {“match”:{“查询”:“喜欢”,“max_gaps”:0,“有序”:真
}
]
}
}
],
"max_gaps" : 3
}
}
}
}
],
"must_not": {
"match": {
"full_text": "."
}
}
}
} }' Search(connection,indexName,body=query)
接下来,我在索引文档之前包含了空白分析器:
index_create(connection,indexName)mapping<- ' {“properties”:{“full_text”:{“type”:“text”,“analyzer”:“whitespace”} ' mapping_create(connection,indexName,body=mapping)
有趣的是,返回了两个文档:最后一个(正确),这个"THIS a brown dog is. that likes to be."
我假设这个文档被返回,因为.
包含在is.
中,而不是在that
中。
任何关于如何进行的提示都是非常受欢迎的。如果我需要提供更多信息,请告诉我。谢谢
1条答案
按热度按时间mf98qq941#
感谢reddit上的几个用户的输入,我能够解决这个问题。
参见:https://www.reddit.com/r/elasticsearch/comments/15z3g97/in_elasticsearch_how_to_exclude_search_results/?sort=new
稍后会在这里发布一个干净的例子。