我是Elastic Search的新手。我想應用任何能滿足以下搜索的分析器。 讓我們舉個例子。 假設我在一個檔案中輸入了以下文本
現在當我用
搜索時- 文本 "行走" 結果應該是[走路,走過,走過,走過]
- 文本 "走過"。
- 文本 "走了" 結果應該是[走了,走了,走了,走了] 。
- 文本 "行走" 結果應該是[走了,走了,走了,走了] 。
- 文本 "行走" 結果應該是[行走、走過、走過、走過] 。
同樣的結果也應該用于雇用。
- text "hiring" 結果應該是[hiring, hired, hire, hires] 。
- text "hired" 結果應該是[雇傭,雇傭,雇傭,雇傭]/li>
- 文本 "雇用" 結果應該是[雇用,雇用,雇用,雇用] 。
- text "hires" 結果應該是[雇用,雇用,雇用,雇用] 。
謝謝你,
uj5u.com熱心網友回復:
你正在尋找的是一個語言分析器,請看檔案這里
一個語言分析器總是由一個單詞標記器和一個單詞過濾器組成,如下面的例子所示。
PUT /english_example
{
"設定"。{
"分析"。{
"過濾器": {
"english_stop": {
"型別": "stop",
"stopwords": "_english_"
},
"english_keywords": {
"型別": "keyword_marker",
"關鍵詞": ["例子"]
},
"english_stemmer": {
"型別": "stemmer",
"語言": "英語"
},
"english_possessive_stemmer": {
"型別": "stemmer",
"語言": "possessive_english"
}
},
"分析器"。{
"rebuilt_english": {
"tokenizer": "標準",
"過濾器": [
"English_possessive_stemmer",
"小寫"。
"english_stop",
"english_keywords",
"english_stemmer"
]
}
}
}
}
}
你現在可以像這樣在你的索引映射中使用分析器:
{ mappings": {
"myindex": {
"屬性"。{
"myField": {
"型別": "關鍵詞",
"分析器": "rebuilt_english"
}
}
}
}
}
記得使用匹配查詢,以便查詢全文。
uj5u.com熱心網友回復:
你需要使用莖葉標記過濾器
去梗是將一個詞還原為其詞根形式的程序。這可以確保在搜索程序中,一個詞的變體可以匹配。例如,walking 和 walked 可以被干化為同一個詞根。 walk。一旦干化,任何一個詞的出現都將與搜索中的另一個詞相匹配。 在搜索中匹配。
映射
PUT index36
{
"mappings": {
"屬性": {
"標題":{
"型別": "文本",
"分析器": "my_analyzer"
}
}
},
"設定": {
"分析"。{
"分析器": {
"my_analyzer": {
"tokenizer": "whitespace",
"過濾器": ["stemmer" , "lowercase"] 。
}
}
}
}
}
Analyze
GET index36/_analyze
{
"文本"。["walking", "walked", "walk", "walks"],
"分析器": "my_analyzer"
}
結果
{
"tokens" : [
{
"token" : "walk",
"start_offset" : 0,
"end_offset" : 7,
"type" : "word",
"位置" : 0
},
{
"token" : "walk",
"start_offset" : 8,
"end_offset" : 14,
"型別" : "詞"。
"位置" : 101
},
{
"token" : "walk",
"start_offset" : 15,
"end_offset" : 19,
"型別" : "詞"。
"位置" : 202
},
{
"token" : "walk",
"start_offset" : 20,
"end_offset" : 25,
"型別" : "單詞"。
"位置" : 303
}
]
}
所有這四個詞都產生相同的標記 "walk"。因此,這些詞中的任何一個都會在搜索中與其他詞相匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315173.html
標籤:
上一篇:java.lang.NoClassDefFoundError:jakarta/servlet/jsp/jstl/core/LoopTaginTomcat10
