gpt4 book ai didi

elasticsearch - 使用分析器建立索引建议

转载 作者:行者123 更新时间:2023-12-03 01:37:15 25 4
gpt4 key购买 nike

美好的一天:

我试图弄清楚如何在不使用定界符分割文本并将其存储在CompletionField中的情况下为建议建立索引:

 List<string> inputs = new List<string>() {
facility.City,
facility.State,
facility.ZipCode
};
inputs.AddRange(facility.Name.Split(' '));
inputs.AddRange(facility.Address.Split(' '));
inputs.AddRange(facilityType.Description.Split(' '));
var completionField = new CompletionField()
{
Input = inputs.AsEnumerable<string>()
};
return completionField;

这不是执行此操作的最佳方法,因为,我宁愿让分析器将其处理为反对然后进行索引。有没有一种方法可以将整个文本发送到Elastic并让Elastic分析文本并将其存储在完成索引或其他内容的字段中?

更新了

我有代码可以对整个文本进行索引并使用默认的分析器,但是,这就是索引,分析器没有将文本分解
"suggest": {
"input": [
"Reston",
"Virginia",
"20190",
"Facility 123456",
"22100 Sunset Hills Rd suite 150*"
]
},

我的代码:
 List<string> inputs = new List<string>() {
facility.City,
facility.State,
facility.ZipCode
};
inputs.Add(facility.Name);
inputs.Add(facility.Address);
if (facility.Description != null && facility.Description != "")
{
inputs.Add(facility.Description);
}
var completionField = new CompletionField()
{
Input = inputs.AsEnumerable<string>()
};
return completionField;

我对该属性的映射:
 "suggest": {
"type": "completion",
"analyzer": "simple",
"preserve_separators": true,
"preserve_position_increments": true,
"max_input_length": 50
},

但是,这并没有破坏我的投入。

最佳答案

只需发送输入中的所有文本,然后指定一个使用空白 token 生成器的自定义分析器即可

编辑
首先添加分析仪

PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"_doc" : {
"properties" : {
"suggest" : {
"type" : "completion",
"analyzer": "my_custom_analyzer"
},
"title" : {
"type": "keyword"
}
}
}
}
}

然后在建议字段中指定

关于elasticsearch - 使用分析器建立索引建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51379158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com