C# 在Elasticsearch中使用variours分析器变得模棱两可
我试图在Elasticsearch的程序中添加一些分析器。 但在添加C# 在Elasticsearch中使用variours分析器变得模棱两可,c#,linq,C#,Linq,我试图在Elasticsearch的程序中添加一些分析器。 但在添加.Property时显示错误,例如 错误1“Nest.CreateIndexDescriptor”不包含“Property”的定义,并且找不到接受“Nest.CreateIndexDescriptor”类型的第一个参数的扩展方法“Property”(是否缺少using指令或程序集引用?) 你能帮我解决这个问题吗 using System; using System.Collections.Generic; using Syste
.Property
时显示错误,例如
错误1“Nest.CreateIndexDescriptor”不包含“Property”的定义,并且找不到接受“Nest.CreateIndexDescriptor”类型的第一个参数的扩展方法“Property”(是否缺少using指令或程序集引用?)
你能帮我解决这个问题吗
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Nest;
using System.Data;
using System.Diagnostics;
using Microsoft.CSharp.RuntimeBinder;
using System.IO;
namespace MenuAnalyzer2
{
public class Program
{
public static Uri node;
public static ConnectionSettings settings;
public static ElasticClient client;
static void Main(string[] args)
{
node = new Uri("http://localhost:9200");
settings = new ConnectionSettings(node, defaultIndex: "asd");
client = new ElasticClient(settings);
var indexsettings = new IndexSettings();
indexsettings.NumberOfReplicas =1;
indexsettings.NumberOfShards = 6;
client.CreateIndex("asd", c => c
.Index("asd")
.InitializeUsing(indexsettings)
.Property(prop => prop
.MultiField(mf => mf
.Name(p => p.Name)
.Fields(f => f
.String(
s =>
s.Name(n => n.Name)
.IndexAnalyzer("autocomplete_analyzer")
.IncludeInAll(false)
.Index(FieldIndexOption.NotAnalyzed))
.String(
s =>
s.Name(n => n.Name)
.IndexAnalyzer("fulltext")
.IncludeInAll(false)
.Index(FieldIndexOption.NotAnalyzed))
)
)
)
.AddMapping<Items>(m => m.MapFromAttributes()));
PerformMatchPhrase();
Items obj;
string filepath = "D:\\food.csv";
DataTable res = ConvertCSVtoDataTable(filepath);
List<DataRow> list = res.AsEnumerable().ToList();
foreach (var row in list)
{
//client = new ElasticClient(settings);
obj = new Items();
obj.itemID = row.Field<string>("ID");
obj.item = row.Field<string>("Foodies");
obj.price = row.Field<string>("Amount");
obj.ac = row.Field<string>("Ac");
client.Index(obj);
}
}
public static DataTable ConvertCSVtoDataTable(string strFilePath)
{
StreamReader sr = new StreamReader(strFilePath);
string[] headers = sr.ReadLine().Split(',');
DataTable dt = new DataTable();
foreach (string header in headers)
{
dt.Columns.Add(header);
}
while (!sr.EndOfStream)
{
string[] rows = sr.ReadLine().Split(',');
DataRow dr = dt.NewRow();
for (int i = 0; i < headers.Length; i++)
{
dr[i] = rows[i];
}
dt.Rows.Add(dr);
}
return dt;
}
public static void PerformMatchPhrase()
{
List<Items> mat = new List<Items>();
var result =
client.Search<Items>(s => s
.Query(q => q.MatchPhrase(m => m.OnField("item").Query("masala"))));
//.Query(q => q.MatchAll("postText"))));
if(result!=null)
{
if (result.Documents.Count <Items>()> 0)
mat = result.Documents.ToList <Items>();
}
foreach(Items m in mat)
{
Console.WriteLine(m.itemID);
Console.WriteLine(m.item);
Console.WriteLine(m.price);
Console.WriteLine(m.ac);
}
Console.ReadLine();
}
}
}`
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
利用鸟巢;
使用系统数据;
使用系统诊断;
使用Microsoft.CSharp.RuntimeBinder;
使用System.IO;
名称空间菜单分析器2
{
公共课程
{
公共静态Uri节点;
公共静态连接设置;
公共静态弹性客户端;
静态void Main(字符串[]参数)
{
节点=新Uri(“http://localhost:9200");
设置=新连接设置(节点,默认索引:“asd”);
客户端=新的ElasticClient(设置);
var indexsettings=新的indexsettings();
indexsettings.NumberOfReplicas=1;
indexsettings.NumberOfShards=6;
CreateIndex(“asd”,c=>c
.索引(“asd”)
.初始化(索引设置)
.Property(prop=>prop
.MultiField(mf=>mf
.Name(p=>p.Name)
.Fields(f=>f
.字符串(
s=>
s、 名称(n=>n.Name)
.IndexAnalyzer(“自动完成分析仪”)
.includenall(假)
.Index(FieldIndexOption.notanalysis))
.字符串(
s=>
s、 名称(n=>n.Name)
.索引分析器(“全文”)
.includenall(假)
.Index(FieldIndexOption.notanalysis))
)
)
)
.AddMapping(m=>m.MapFromAttributes());
PerformMatchPhrase();
项目obj;
string filepath=“D:\\food.csv”;
DataTable res=convertcsvtodatable(文件路径);
列表=res.AsEnumerable().ToList();
foreach(列表中的变量行)
{
//客户端=新的ElasticClient(设置);
obj=新项目();
obj.itemID=行字段(“ID”);
obj.item=行字段(“Foodies”);
对象价格=行字段(“金额”);
obj.ac=行字段(“ac”);
客户索引(obj);
}
}
公共静态数据表ConvertCSVTodatable(字符串strFilePath)
{
StreamReader sr=新的StreamReader(strFilePath);
string[]headers=sr.ReadLine().Split(',');
DataTable dt=新的DataTable();
foreach(标头中的字符串标头)
{
dt.Columns.Add(表头);
}
而(!sr.EndOfStream)
{
string[]rows=sr.ReadLine().Split(',');
DataRow dr=dt.NewRow();
for(int i=0;is
.Query(q=>q.MatchPhrase(m=>m.OnField(“item”).Query(“masala”)));
//.Query(q=>q.MatchAll(“postText”));
如果(结果!=null)
{
如果(result.Documents.Count()>0)
mat=result.Documents.ToList();
}
foreach(垫子中的项目m)
{
控制台写入线(m.itemID);
控制台写入线(m.item);
控制台写入线(m.price);
控制台写入线(m.ac);
}
Console.ReadLine();
}
}
}`