- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下数据:
{"_index": "simple", "_type": "motorcycle", "_source": {"date": "2018-04-28T10:55", "price": 134900, "sellerName": "Bike MC V\u00e4st AB", "description": "KTM 1290 Super Duke R,Bike G\u00f6teborg M\u00e4tarst\u00e4llning: 498 mil F\u00e4rg: M\u00f6rkbl\u00e5 Typ: Sport Info: M\u00e4rke: KTM 1290 Super Duke R, Bike G\u00f6teborg. F\u00e4rg: Svart. Pris : 134900 kr. \u00c5rsmodell: 2017. M\u00e4tarst\u00e4llning: 498 mil. Senaste service gjordes vid: 498 mil. N\u00e4sta service \u00e4r vid: 1500 mil. Datum f\u00f6r n\u00e4sta besiktning: 2021-04-30. Motoreffekt: 177 HK. Framd\u00e4ck: 60 % kvar, bakd\u00e4ck: 100 % kvar. Utrustning: Arrow slipon inkl original, kraschpuckar, Trackpack. Instruktionsbok, extranyckel medf\u00f6ljer . MC:n har genomg\u00e5tt inbytestest p\u00e5 48 punkter. Nygaranti tom: 2019-04-06. Finansierings ex: 20% kontant = 27059kr, m\u00e5nadsbelopp: 1477kr. MC:n levereras nyservad med nytt bakd\u00e4ck, (KTM 1290 Super Duke R, 1290, sd r, duke, naked, streefighter) Bike G\u00f6teborg 031 3892801", "location": "G\u00f6teborg, Hisingen", "id": 447, "title": "KTM 1290 Super Duke R,Bike G\u00f6teborg", "modelYear": 2017, "url": "https://www.blocket.se/goteborg/KTM_1290_Super_Duke_R_Bike_Goteborg_79076153.htm?ca=11&w=3", "vehicleType": "Sport"}}
{"_index": "simple", "_type": "motorcycle", "_source": {"date": "2018-04-27T16:19", "price": 125000, "sellerName": "Henrik \u00d6rtenwall", "description": "Harley Davidson Night Rod VRSCDX. Fula, breda, l\u00e5nga baksk\u00e4rmen bytt mot en kortare. Utbytta blinkers fram + bak samt baklampa. Nytt rakare, l\u00e4gre, svart styre. M\u00e5nga sm\u00e5 detaljer som bytta fotpinnar, gaffelbensskydd etc. Ca 2800 mil.", "location": "G\u00f6teborg, V\u00e4stra Centrum", "id": 753, "title": "HD Night Rod", "modelYear": 2007, "url": "https://www.blocket.se/goteborg/HD_Night_Rod_79065407.htm?ca=11&w=3", "vehicleType": "Custom"}}
def create_index(self, file_path):
"""
Takes path to file containing JSON-formatted data
and indexes into Elasticsearch index.
"""
print('Creating index "{}"'.format(INDEX_NAME))
request_body = {
"settings":{
"index":{
"number_of_shards":1,
"number_of_replicas":0
}
},
"mappings":{
"motorcycle":{
"properties":{
"location": {
"type":"keyword",
},
"vehicleType": {
"type": "keyword",
},
"description":{
"type":"text",
"analyzer":"swedish",
},
}
}
}
}
self.es.indices.create(index = INDEX_NAME, body = request_body)
f_in = open(PATH_TO_DATASET, "r")
actions = (json.loads(line) for line in f_in)
print("Performed bulk index: {}".format(bulk(self.es, actions)))
self.es.indices.refresh(index = "simple")
"G\u00f6teborg, Hisingen"
,在第二个文档中将其设置为
"G\u00f6teborg, V\u00e4stra Centrum"
。如您在我的代码中所见,
location
字段是一个关键字字段。开始时,我使用
filter
过滤
location
字段:
{
"query": {
"bool": {
"filter": [
{
"term": {
"location": "PlaceName"
}
}
]
}
}
}
PlaceName
与要返回的文档的
location
字段完全相同。那不是我想要的
我希望其location
字段包含placeName
的任何文档都返回。因此,例如,如果我为location字段指定
G\u00f6teborg
,则上述数据中的两个文档都应匹配。另外,我不希望这会影响文档的评分,因此我可以将其用作过滤器。
{
"query": {
"bool": {
"must":{
"term": {
"location": "G\u00f6teborg",
"boost":0
}
}
}
}
}
boost
字段,该查询无效(返回错误消息)。如果我删除
boost
,查询将不提供匹配项,这也不是很好。
{
"query": {
"term": {
"location":"G\u00f6teborg"
}
}
}
G\u00f6teborg
更改为
Göteborg
可获得相同的结果。
{
"query": {
"match": {
"location":{
"query": "G\u00f6teborg",
"boost": 0
}
}
}
}
最佳答案
您应该将location
字段的类型更改为text
-keyword
类型仅允许完全匹配,但是text
字段将使用输入上的标准分析器执行analysis,作为该分析的一部分,它将执行标记化,将文本拆分为单词因此,当您查询该字段时,您还可以匹配部分内容。
除此之外,由于希望将分析器也应用于查询,因此最好将查询类型从term
更改为match
。
查询示例:
{
"query": {
"bool": {
"filter": [
{
"match": {
"location": "PlaceName"
}
}
]
}
}
}
关于python - 如何使Elasticsearch返回所有包含特定术语的文档而不对其评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315511/
当我搜索“iphone”时,我有以下记录和分数 - 记录1: 字段名称 - 显示名称:“iPhone” 字段名称 - 名称:“iPhone” 11.654595 = (MATCH) sum of:
Types Description: parent type 1)Parent Type: "product" 2)childType : "ratings" 问题描述:我有一个es查询(q
如果您使用 Freebase 搜索按名称获取任何实体的匹配项,您将获得按 relevance score 排序的结果.例如尝试 Taj Mahal . 我正在尝试使用 Freebase 数据转储获得类
我试图根据多个不同的标准给不同的城市打从 1 到 5 的“分数”,最终将分数相加并决定哪个城市最好。 表“international_tobacco_alcohol”包含居民用于酒精和烟草的收入百分比
我有一年中任何一个季度的索引(“index-2015.1”,“index-2015.2”...) 我在每个索引上有大约 3000 万个文档。 文档有一个文本字段('title') 我的文档排序方式是(
我有一个数组,我想根据为数组中的每个元素分配一个分数来排序。 假设可能的分数范围是 0-100。为了获得该分数,我们将使用 2 个比较数据点,一个权重为 75,一个权重为 25。我们称它们为 valu
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
做一排星星作为评级是微不足道的,但我不确定做随机数的正确 flutter 方法是什么? 换句话说,假设我的评分最多为 5 颗星,我该怎么做,只有一颗或两颗星?我可以有一个 switch 语句,并返回带
我需要创建一个灵活的(最好是动态的)评分引擎,就像信用评分或保费计算系统一样。有创建评分引擎实践经验的人有任何建议、示例或建议模式吗? 我已经知道: Rete Algorithm FICO The o
我的索引中有以下类型的文档,但由于深度嵌套方面,找不到正确排序的方法。 文档示例: { "metadatas": [{ "name": "name", "timeValidity"
我正在寻找 Lucene (Java) 中的相似性模块,它给出基于权重的分数。我知道这很模糊,最好用一个例子来解释。 Document 1 ----------- Firstname: Frances
我对 Lucene 8 比较陌生,想了解如何将旧版 Solr 4 评分迁移到 Lucene。这就是 Solr 4 目前的做法。 /* * From the SolrRelevan
我正在使用 Lucene 来构建标记共现的大型索引(例如 [elephant,animal]、[melon,fruit]、[宝马,汽车],...)。我使用 BooleanQuery 查询索引以获取绝对
Ratingbar 星未正确显示。我不知道我做错了什么。当我使用自定义样式时,只显示一颗星,它的长度等于 5 星。 风格是: @drawable/manual_ratingbar
我编写了一个程序,它读取 imdb 上排名前 250 的电影的名称和评分,并返回评分的平均值。我有以下程序 import java.io.IOException; import org.jsoup.*
我有一个直截了当的问题,我将 ngram 用于部分匹配。实现效果很好,但得分结果并不像我希望的那样有效。我希望我的分数结果看起来像这样: 柯:.1 Kev:.2 凯维:.3 凯文:.4 相反,我得到以
假设我有一个像这样的 MySQL 表: 软件表: id int name text votes int rating int 其中投票是某人为该项目投票的次数,评分是这些投票的平均值。 示例数据: i
我在索引期间使用过滤器 EdgeNGramTokenFilter。 当我寻找一个词时。当 Lucene 找到完整单词或另一个单词的一部分时,它的评分不会产生差异。 例如,如果我正在查找单词 PUB。我
我们正在使用 java 并使用 elasticsearch java api 开发一个应用程序。我们对元数据建立了索引,并希望在索引时或搜索时使用排名/评分。 而且,我不知道是否可以对用户单击结果时选
有人可以解释(或引用引用资料)用更简单的词来比较 SOLR 和 LUCENE 使用的评分机制。 它们有什么区别吗? 我不太擅长 solr/lucene,但我的发现表明它们似乎不同。 P.S:我只是尝试
我是一名优秀的程序员,十分优秀!