- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在Elasticsearch中设置搜索分析,并且尝试了许多组合,但均未成功,现在我不知道是否可行:
假设我有3个具有以下全名的用户
Jo
应该给出 John Doe 和 Johnatan Lebus Ja
应该给出 Jane Doe doe
应该给出 Jane Doe 和 John Doe doe john
应该仅提供 John Doe 而不是 Jane Doe "analysis": {
"analyzer": {
"keyword_analyzer": {
"char_filter\"": [],
"filter": [
"lowercase",
"asciifolding",
"trim"
],
"type": "custom",
"tokenizer": "keyword"
},
"edge_ngram_analyzer": {
"filter": [
"lowercase"
],
"tokenizer": "edge_ngram_tokenizer"
},
"edge_ngram_search_analyzer": {
"tokenizer": "lowercase"
}
},
"tokenizer": {
"edge_ngram_tokenizer": {
"token_chars": [
"letter"
],
"min_gram": "2",
"type": "edge_ngram",
"max_gram": "5"
}
}
},
最佳答案
我绝对认为您的分析器可能适合您的用例,我怀疑您在查询时需要帮助。
我使用您的分析仪设置了索引,并使用它创建了一个字段:
PUT test
{
"settings": {
"analysis": {
"analyzer": {
"keyword_analyzer": {
"char_filter\"": [],
"filter": [
"lowercase",
"asciifolding",
"trim"
],
"type": "custom",
"tokenizer": "keyword"
},
"edge_ngram_analyzer": {
"filter": [
"lowercase"
],
"tokenizer": "edge_ngram_tokenizer"
},
"edge_ngram_search_analyzer": {
"tokenizer": "lowercase"
}
},
"tokenizer": {
"edge_ngram_tokenizer": {
"token_chars": [
"letter"
],
"min_gram": "2",
"type": "edge_ngram",
"max_gram": "5"
}
}
}
},
"mappings": {
"test_doc": {
"properties": {
"full_name": {
"type": "text",
"analyzer": "edge_ngram_analyzer"
}
}
}
}
}
PUT test/test_doc/1
{
"full_name": "John Doe"
}
PUT test/test_doc/2
{
"full_name": "Jane Doe"
}
PUT test/test_doc/3
{
"full_name": "Johnatan Lebus"
}
GET test/_search
{
"query": {
"match": {
"full_name": {
"operator": "and",
"query": "doe john"
}
}
}
}
关于elasticsearch - 什么是在Elasticsearch中查询全名的最佳配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712800/
我正在尝试用此人的全名填充 Yii2 中的下拉列表,名字和姓氏在我的数据库中的不同列中。 在我的个人表中 编号 名字 姓氏 dep_id (fk) ... 在我的 Person.php 模型中有 pu
我目前正在像这样连接名字和姓氏(使用 PostgreSQL): concat(customers.firstname, ' ', customers.lastname) 我在这里遇到的问题是我的客户只
从 (new Date()).toString() 返回的字符串看起来像这样: "Tue Nov 22 2016 14:14:51 GMT-0800 (Pacific Standard Time)"
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
已经将近 3 天了,我仍然无法修复该错误。简单的情况,我想搜索人名(姓名和姓氏)。 示例: 首先我写给 John(结果:John Newman、John Stable、John Carens) 然后我
我在我的项目中使用 Laravel 5.3,我试图获取多个列并在 View 的下拉选择元素中显示数据。我正在做这样的查询: $users = User::select( DB:
我目前正在使用此脚本从给定路径中提取名称、文件夹、文件夹名称: Get-ChildItem "C:\user\desktop" | Select Name, ` @{ n = 'Folde
我通过在 ApplicationUser 中添加几个字段扩展了 ASP NET 身份架构。派生自 IdentityUser 的类.我添加的字段之一是 FullName . 现在,当我写 User.Id
我正在开发一个 Android 应用程序,其中任何使用我们的应用程序登录到 Facebook 的 Android 用户,我需要从 Facebook 中提取他的照片、他的性别和他的全名。我正在为此使用
我是一名优秀的程序员,十分优秀!