Elasticsearch:映射用于搜索优化的文本字段
我必须实现一个文本搜索应用程序,它为新闻文章编制索引,然后允许用户在这些文本中搜索关键字、短语或日期 在考虑了我的选择(主要是SOLR和elasticsearch)之后,我用elasticsearch做了一些测试 现在,我要讨论的是最适合我遇到的一些特殊情况的映射和搜索查询构造选项。我当前的映射只有一个包含所有文本的字段,需要进行分析才能进行搜索 与字段的映射的特定部分:Elasticsearch:映射用于搜索优化的文本字段,search,
elasticsearch,full-text-search,Search,
elasticsearch,Full Text Search,我必须实现一个文本搜索应用程序,它为新闻文章编制索引,然后允许用户在这些文本中搜索关键字、短语或日期 在考虑了我的选择(主要是SOLR和elasticsearch)之后,我用elasticsearch做了一些测试 现在,我要讨论的是最适合我遇到的一些特殊情况的映射和搜索查询构造选项。我当前的映射只有一个包含所有文本的字段,需要进行分析才能进行搜索 与字段的映射的特定部分: "txt": { "type" : "string", "term_vector" :
"txt": {
"type" : "string",
"term_vector" : "with_positions_offsets",
"analyzer" : "shingle_analyzer"
}
其中木瓦分析仪为:
"analysis" : {
"filter" : {
"filter_snow": {
"type":"snowball",
"language":"romanian"
},
"shingle":{
"type":"shingle",
"max_shingle_size":4,
"min_shingle_size":2,
"output_unigrams":"true",
"filler_token":""
},
"filter_stop":{
"type":"stop",
"stopwords":["_romanian_"]
}
},
"analyzer" : {
"shingle_analyzer" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : ["lowercase","asciifolding", "filter_stop","filter_snow","shingle"]
}
}}
我的问题涉及以下情况:
我必须搜索“ING”,返回了几个“ING”
我必须搜索“E!”分析仪会杀死
标点符号,因此没有结果
我必须搜索某些用作公司名称的大写通用术语(如“Apple”,但有多个单词),而小写过滤器会产生无用的结果
我的想法是用不同的过滤器构建不同的字段,以覆盖所有这些可能的问题
三个问题:
用不同的分析仪将场分成三个场是否正确李>
搜索时如何使用不同的字段李>
有人能解释一下评分是如何包括所有这些字段的吗