"在Elasticsearch中设计索引以便"
我们如何使Elasticsearch返回相同的结果,无论搜索是否使用"and"作为查询字符串或&"
例如,有一个查询来查找包含“和/”的所有电影标题
所以在这种情况下,搜索是否用“和”或“
从我的Kibana开发工具中转储
放置测试索引{“设置”:{“副本的数量”:0,“碎片的数量”:1},“映射”:{“文档”:{“属性”:{“电影名称”:{“类型”:“文本”}}}
把 /test_index/doc/1{"movie_name":"Mr.
PUT/test\u index/doc/2{“电影名”:“杰克和吉尔”}
把 /test_index/doc/3{"movie_name":"abc和def
PUT/test\u index/doc/4{“电影名称”:“虚拟名称”}
下面的两个查询应该返回相同的结果
>
获取测试索引/_搜索{“大小”:20,“查询”:{“匹配”:{“电影名称”:”
GETtest_index/_search{"大小": 20,"查询":{"匹配":{"movie_name":"和" } } }
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"my_char_filter"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "mapping",
"mappings": [
"+ => plus",
"& => and"
]
}
}
}
}
}
为此,您应该创建char过滤器。
使用上述分析器创建索引时
POST my_index/_analyze
{
"analyzer": "my_analyzer",
"text": "&"
}
输出:
{
"tokens": [
{
"token": "and",
"start_offset": 0,
"end_offset": 1,
"type": "word",
"position": 0
}
]
}
如果不使用上面的字符过滤器分析器运行上面的分析,您将得到
{
"tokens": []
}
原因:在ES中-创建文本类型的字段时,符号将被删除。
有几种方法可以做到这一点
>
保留您的标准分析器,并添加一个字符替换过滤器来替换任何"
我有三个索引,它们都共享一个特定的键值对。当我用api进行全面搜索时”http://localhost:9200/_search“使用请求正文 它只返回其中两个索引的结果。我尝试使用相同的请求正文,将url更改为仅在丢失的索引中搜索”http://localhost:9200/index_name/_search“这很管用。我有什么遗漏吗? 插入所有三个索引的代码遵循相同的过程,我使用elasti
我使用logstash将我的mysql表数据保存到elasticsearch中。现在我想使用特定字段从elasticsearch获取数据。我可以使用id获取数据,但无法使用其他字段检索数据。 我正在使用elasticsearch 5.6.12和Spring boot 2.0 searchcontroller.java 我想用first_name搜索,但什么都没有显示。我在这里做错了什么?
我目前正在参与使用Liferay(6.1 GA2)的项目。Liferay搜索结果似乎提供了指向Web内容片段的链接,而不是指向包含这些片段的页面的链接。 你们中有人经历过这个问题吗?你知道怎么解决吗? 非常感谢朋友们。 最好的,阿尔贝托
首先,对不起我的英语不好! 我是Lucene图书馆的新人(从上周三开始),我试图了解如何根据找到的术语获得匹配文档的最佳相关性级别。 我使用Lucene 4.10。0(无Solr) 我能够索引/搜索英语/阿拉伯语文本,以及支持这些文本的点击突出显示。 现在我有一个问题与搜索结果的相关性。 如果我在三个文档中搜索“穆罕默德·奥马尔”: 我得到同样的分数为这3文档。 看起来Lucene忽略了单词顺序,
查询:{“explain”:true,“size”:500,“Query”:{“query_string”:{“query_string”:{“query_string”:“((names.name:(BANK AMERICA\\)”)^50或(names.name:(BANK AMERICA\))^30或(name_pair:\“BANK AMERICA\\\)^30或(name_name:(B
我已经完成了名称索引。它包含椅子、椅子等数据。 当我尝试用“cha”搜索时,它不会返回任何椅子。这是返回“毛毯”,我期待的文件有椅子。 下面是我的代码: 搜索请求: 搜索响应: } 映射: 我该怎么解决这个问题? 谢谢,Sri