在弹性搜索中,此过滤器
{
"bool": {
"must": {
"term": {
"article.title": "google"
}
}
}
}
正确返回标题中带有“Google”的文章。
然而,
{
"bool": {
"must": {
"term": {
"article.title": "google earth"
}
}
}
}
不返回任何结果,尽管事实上有些文章的标题中有“Google Earth”的确切字样。我希望它这样做。
完整查询:
{
"size": 200,
"filter": {
"bool": {
"must": {
"term": {
"article.title": "google maps"
}
}
}
},
{
"range": {
"created_date": {
"from": "2013-01-11T02:14:03.352Z"
}
}
}]
}
}
{
"query": {
"bool": {
"must": {
"must_match": {
"article.title": "google earth"
}
}
}
}
}
{
"size": 200,
"filter": {
"query": {
"bool": {
"must": {
"must_match": {
"article.title": "google earth"
}
}
}
}
}
}
FWIW,我在“filter”字段中有此条件的原因是(与使用标准查询相反),有时我希望使用“must_not”而不是“must_not”,有时我还向查询添加其他元素。
Elasticsearch根本没有使用分析器,因为您使用了术语
查询,它查找确切的术语。
您的标题
字段将被分析(除非您另有指定),因此“Google Earth”
将被索引为两个术语[“Google”,“Earth”]
。这就是为什么“Google”
的术语
查询有效,而“Google Earth”
的术语
查询无效的原因--确切的术语不存在。
如果使用match
查询,则在搜索之前将分析查询术语。
问题内容: 我想知道是否可以过滤不良语言的单词。过滤亵渎行为的一个示例是用户创建帐户时的用户名,这样它可以通知用户该词是不可接受的。 可能吗?谢谢 :) 问题答案: 不,不可能使用任何编程语言来过滤不良语言单词。 您能做的最好的事情就是创建一个不良语言单词列表,然后对照该列表进行检查。只要系统存在,就将单词添加到列表中。 这是一个简单的示例来说明问题。让我们假设“地狱”是一个不好的语言单词。这是“
问题内容: 我尝试使用Elasticsearch为我的内容实现A-Z导航。我需要的是显示所有以a,b,c等开头的结果。 我试过了: 上面提到的查询还显示结果,其中字符串中的单词以a开头。例: “ title”:“ Apfelpfannkuchen”, “ title”:“ Affogato”, “ title”:“ Kalbsschnitzel a n A ceto Balsamico”, 我只想
我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件
我试图编写一个由2个部分组成的弹性搜索布尔查询。我想要“必须”的两个条件和“应该”的两个条件。问题是我只想得到“应该”的分数。我尝试了“过滤器”,但没有成功。 你有什么想法吗?
问题内容: 我有一个,并且效果很好,直到我在输入中添加了一个空格。例如,如果我列出了许多历史事件(英国战役(1940年),大爆炸战役(1944年),[插入大量战斗],拿破仑的致命游行(1812年),[插入许多其他历史事件]) 。 当我输入“ ”或“ ”时,我会得到所有战斗的列表(尽管似乎有最大战斗),而当我输入“ ”时,结果会出现。 但是,当我输入时,该列表为空,与输入时我没有得到任何匹配的原因相
我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与