Commit 689160bb by mahaisong

fix:测试NEST6改变标签后的功能和put的功能。

parent e6994ca2
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
......@@ -4,14 +4,21 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<!--<connectionStrings>
--><!--测试stringtext--><!--
--><!--<add name="ESDatabase" connectionString="host=mech.palaspom.com|tank.palaspom.com;port=19235;defaultIndex=palas;requesttimeout=0:1:00;version=2;" />--><!--
</connectionStrings>-->
<connectionStrings>
<!--必选:20187150点迁移完成前保留-->
<!--必选:20187150点迁移完成前保留-->
<add name="2ESDatabase" connectionString="host=127.0.0.1|localhost;port=9200;defaultindex=test;requesttimeout=0:1:00;version=2;" />
<!--必选:(全部小写)6没有defaultindexIndex:palas前缀字符+“_”+type -->
<!--必选:(全部小写)6没有defaultindexIndex:palas前缀字符+“_”+type-->
<add name="ESDatabase" connectionString="host=minder;port=9200;requesttimeout=0:1:00;version=6;indexprefix=test_;" />
......
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using Nest;
namespace UnitTestProject
{
/// <summary>
/// 作者信息(存NoSQL)
/// </summary>
[Serializable]
[ElasticsearchType(Name = "author")]
public class Author
{
/// <summary>
/// 作者ID(源网站上的ID)
/// </summary>
[Text(Name = "AuthorID")]
public string AuthorIDTest { get; set; }
#region 注册信息
/// <summary>
/// 网名
/// </summary>
public string AuthorName { get; set; }
/// <summary>
/// 真名(People表的FullName)
/// </summary>
public string RealName { get; set; }
/// <summary>
/// 实名认证信息
/// </summary>
public string CertificationInfo { get; set; }
public DateTime BirthDay { get; set; }
/// <summary>
/// 注册地(对应到Region表)
/// </summary>
public string RegionID { get; set; }
/// <summary>
/// 个人描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 作者图片
/// </summary>
public string AuthorImg { get; set; }
/// <summary>
/// 作者主页
/// </summary>
public string Homepage { get; set; }
/// <summary>
/// 注册时间
/// </summary>
public DateTime RegisterTime { get; set; }
#endregion 注册信息
#region 行为数据
/// <summary>
/// 粉丝数
/// </summary>
public int FansCount { get; set; }
/// <summary>
/// 关注数/订阅数
/// </summary>
public int FollowCount { get; set; }
/// <summary>
/// 互粉数
/// </summary>
public int CloseFriendsCount { get; set; }
/// <summary>
/// 微博数/发言数
/// </summary>
public int PostCount { get; set; }
/// <summary>
/// 平均转发数
/// </summary>
public int AvgForward { get; set; }
/// <summary>
/// 平均评论数
/// </summary>
public int AvgReply { get; set; }
/// <summary>
/// 粉丝的粉丝平均数
/// </summary>
public int AvgFansCountOfFans { get; set; }
#endregion 行为数据
#region 分析数据
#region 来自数据库
/// <summary>
/// 如果丫是个人物,请到MySQL里查,有人工标注的详细信息
/// </summary>
public string PeopleID { get; set; }
/// <summary>
/// 职业头衔
/// </summary>
public string Title { get; set; }
/// <summary>
/// 职业
/// </summary>
public string Job { get; set; }
/// <summary>
/// 倾向性 -3反动 -2极左 -1左倾 0中立 1右倾 2极右 3极端右
/// </summary>
public byte Tendency { get; set; }
/// <summary>
/// 意见领袖得分
/// </summary>
public int SocialIndex { get; set; }
#endregion 来自数据库
/// <summary>
/// 连续值的标签,如收入等
/// </summary>
public EvaluationAttribute<float>[] Tags_float { get; set; }
/// <summary>
/// 字符串的标签,如兴趣等
/// </summary>
public EvaluationAttribute<string>[] Tags_string { get; set; }
/// <summary>
/// 离散值的标签,如性别等
/// </summary>
public EvaluationAttribute<byte>[] Tags_byte { get; set; }
public string[] Tags { get; set; }
public string[] DBType { get; set; }
#endregion 分析数据
#region 抓取信息(每月刷新所有粉丝列表)
/// <summary>
/// 用户来源
/// </summary>
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 使用哪个内部账户订阅此用户
/// </summary>
public string InternalSubscribeID { get; set; }
#region 基本信息和微博刷新
/// <summary>
/// 信息更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 历史更新的次数
/// </summary>
public int UpdateCount { get; set; }
/// <summary>
/// 是否需要定期更新
/// </summary>
/// <summary>
/// 下次更新时间(抓取调度用)
/// </summary>
public DateTime NextRefreshTime { get; set; }
/// <summary>
/// 最后一条微博的SinceID
/// </summary>
public string LastSinceID { get; set; }
/// <summary>
/// 刷新间隔
/// </summary>
public int IntervalDays {get;set;}
#endregion 基本信息和微博刷新
#region 刷新粉丝和关注
/// <summary>
/// 信息更新时间
/// </summary>
public DateTime Fans_UpdateTime { get; set; }
/// <summary>
/// 历史更新的次数
/// </summary>
public int Fans_UpdateCount { get; set; }
/// <summary>
/// 下次更新时间(抓取调度用)
/// </summary>
public DateTime Fans_NextRefreshTime { get; set; }
/// <summary>
/// 关注列表中最新添加的用户的ID
/// </summary>
public String LastFollowerID { get; set; }
/// <summary>
/// 粉丝列表中最新添加的用户的ID
/// </summary>
public String LastFanID { get; set; }
/// <summary>
/// 表示哪一个Crawler正拿着这个Author在抓取
/// </summary>
public String LockCrawler { get; set; }
/// <summary>
/// 如果超过这个时间则无视LockCrawler
/// </summary>
public DateTime LockTimeout { get; set; }
/// <summary>
/// 刷新间隔
/// </summary>
public int Fans_IntervalDays {get;set;}
#endregion 刷新粉丝和关注
#region 刷新地理列表
/// <summary>
/// 信息更新时间
/// </summary>
public DateTime Location_UpdateTime { get; set; }
/// <summary>
/// 历史更新的次数
/// </summary>
public int Location_UpdateCount { get; set; }
/// <summary>
/// 下次更新时间(抓取调度用)
/// </summary>
public DateTime Location_NextRefreshTime { get; set; }
/// <summary>
/// 刷新间隔
/// </summary>
public int Location_IntervalDays {get;set;}
/// <summary>
/// 最后一个带有地理信息的微博的ID
/// </summary>
public string Location_LastSinceID { get; set; }
#endregion 刷新地理列表
#endregion 抓取信息
/// <summary>
/// 估算标签
/// </summary>
[Serializable]
public class EvaluationAttribute<T>
{
/// <summary>
/// 属性名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 预计值
/// </summary>
public T Value { get; set; }
/// <summary>
/// 置信度(100%表示确定的样本)
/// </summary>
public float Confidence { get; set; }
/// <summary>
/// 评估模型/算法编号
/// </summary>
public byte EvaluationModel { get; set; }
/// <summary>
/// 评估时间
/// </summary>
public DateTime EvaluationTime { get; set; }
public EvaluationAttribute(string Name, T Value, float Confidence, byte EvaluationModel = 0, DateTime? EvaluationTime = null)
{
this.Name = Name;
this.Value = Value;
this.Confidence = Confidence;
this.EvaluationModel = EvaluationModel;
this.EvaluationTime = EvaluationTime == null ? DateTime.Now : (DateTime)EvaluationTime;
}
}
}
/// <summary>
/// 作者信息(存NoSQL)
/// </summary>
[Serializable]
[ElasticsearchType(Name = "authorrelationdetails")]
public class AuthorRelationDetail:Author
{
public string RelatedAuthorID { get; set; }
public RelateType RelatedType { get; set; }
public AuthorRelationDetail(string relatedAuthorID, RelateType relateType)
{
RelatedAuthorID = relatedAuthorID;
RelatedType = relateType;
}
}
public enum RelateType
{
Follow = 1, //关注关系
Follower = 2, //粉丝关系
}
/// <summary>
/// 作者关系(存NoSQL)
/// </summary>
[Serializable]
[ElasticsearchType(Name = "authorlocations")]
public class AuthorLocation
{
public string Poiid { get; set; }
public string Title { get; set; }
public string Type { get; set; }
public string AuthorID { get; set; }
public double Lat { get; set; }
public double Lon { get; set; }
public DateTime Date { get; set; }
}
/// <summary>
/// 作者关系(存NoSQL)
/// </summary>
[Serializable]
[ElasticsearchType(Name = "authorrelation")]
public class AuthorRelation
{
/// <summary>
/// 关系出发者(订阅者)
/// </summary>
public string FollowerID { get; set; }
/// <summary>
/// 关系指向(被订阅者)
/// </summary>
public string TargetID { get; set; }
/// <summary>
/// 此关系是否已经失效
/// </summary>
public bool IsDeleted {get;set;}
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 信息更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
/// <summary>
/// 地点信息
/// </summary>
[Serializable]
public class Location
{
public string PoID { get; set; }
/// <summary>
/// LocationID的来源,_前缀表示url未解开,Location集合中没有
/// </summary>
public string PoIDSource { get; set; }
/// <summary>
/// 在源网站上的ID
/// </summary>
public string ClientID { get; set; }
public string Title { get; set; }
public string Address { get; set; }
public string Url { get; set; }
/// <summary>
/// 纬度
/// </summary>
public float Lat { get; set; }
/// <summary>
/// 经度
/// </summary>
public float Lon { get; set; }
public string CategoryID { get; set; }
public string CategoryName { get; set; }
public string RegionID { get; set; }
public string IconUrl { get; set; }
public int CheckInCount { get; set; }
#region 抓取信息(15分钟刷新周围所有人)
/// <summary>
/// 刷新任务的优先级
/// </summary>
public byte RefreshPriority { get; set; }
/// <summary>
/// 上次刷新时间(抓取调度用)
/// </summary>
public DateTime LastRefreshTime { get; set; }
/// <summary>
/// 刷新次数计数
/// </summary>
public int RefreshCount { get; set; }
/// <summary>
/// 下次更新时间(抓取调度用)
/// </summary>
public DateTime NextRefreshTime { get; set; }
/// <summary>
/// 刷新间隔分钟
/// </summary>
public int IntervalMins{get;set;}
#endregion 抓取信息
}
}
using Nest2_5_8;
using Nest2_5_8;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UnitTestProject
{
/// <summary>
/// 反馈信息
/// </summary>
[ElasticsearchType(Name = "feedbacks")]
public class FeedbackModel
{
/// <summary>
/// 用户编号
/// </summary>
public string UserId { set; get; }
/// <summary>
/// 反馈内容
/// </summary>
public string Content { set; get; }
/// <summary>
/// 创建时间
/// </summary>
public long CreateTime { set; get; }
/// <summary>
/// 反馈编号
/// </summary>
public string FeedbackID { set; get; }
/// <summary>
/// 反馈包含图片
/// </summary>
public List<string> Images { set; get; }
/// <summary>
/// 反馈的回复,为了降低复杂度,回复暂时没有层级关系,按照时间排序
/// </summary>
[Nested(CopyTo = "replys")]
public List<FeedbackModel> Replys { set; get; }
}
//[ElasticsearchType(Name = "boolwriting")]
//public class BoolWriting
//{
// public string BoolPushID { get; set; }
// public string AbilityName { get; set; }
// [Text(Name = "stockName")]
// public string Name { get; set; }
// [Number(Name = "pubDateTimeStamp")]
// public long PubDate { get; set; }
// [Text(Name = "tendency1")]
// public string Tendency { get; set; }
// [Text(Name = "typename")]
// public string Type { get; set; }
// public string FinancialName { get; set; }
// [Text(Name = "status1")]
// public string Status { get; set; }
// [Text(Name = "ability1")]
// public string Ability { get; set; }
// [Text(Name = "codeNum")]
// public string Code { get; set; }
// [Text(Name = "pushContent")]
// public string Content { get; set; }
// [Text(Name = "value1")]
// public double Value { get; set; }
// public int Pushing { get; set; }
//}
}
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
......@@ -41,6 +41,9 @@
<Reference Include="Elasticsearch.Net, Version=6.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d, processorArchitecture=MSIL">
<HintPath>..\packages\Elasticsearch.Net.6.1.0\lib\net46\Elasticsearch.Net.dll</HintPath>
</Reference>
<Reference Include="Elasticsearch.Net2_5_8">
<HintPath>..\..\includees\Elasticsearch.Net2_5_8.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.1.2.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
......@@ -50,6 +53,9 @@
<Reference Include="Nest, Version=6.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d, processorArchitecture=MSIL">
<HintPath>..\packages\NEST.6.1.0\lib\net46\Nest.dll</HintPath>
</Reference>
<Reference Include="Nest2_5_8">
<HintPath>..\..\includees\Nest2_5_8.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
......@@ -57,6 +63,8 @@
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="Author.cs" />
<Compile Include="BoolWriting.cs" />
<Compile Include="ES6.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UnitTestES6-2.cs" />
......
using System;
using System;
......@@ -3,6 +3,9 @@ using System.Text;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestES6_2;
using Nest;
using HTCommon.Helper;
using System.Linq;
namespace UnitTestProject
{
......@@ -37,6 +40,85 @@ namespace UnitTestProject
}
}
[TestMethod]
public void testAuthortext()
{
// int i = 5;
// Author item6 = new Author();
// //将数据构造为ITEM。
// item6.AuthorIDTest = "DeleteTestOracleBeigeNEWS";
//var t12 = ESAccess.Index<Author>(item6);
Nest.SearchDescriptor<Author> builder6 = new Nest.SearchDescriptor<Author>()
.Query(q => q.MatchAll());
List<Author> list = ESAccess.Search(builder6).ToList<Author>();
Console.ReadLine();
}
public static List<BoolWriting> GetBoolWritingBywhere(DateTime? PubDate, string boolPushID)
{
SearchDescriptor<BoolWriting> builder = new SearchDescriptor<BoolWriting>();
QueryContainer query = null;
//发布时间小于等于结束时间
if (PubDate == null)
PubDate = DateTime.Now;
if (!string.IsNullOrEmpty(boolPushID))
{
query &= Query<BoolWriting>.QueryString(r => r.DefaultField(f => f.BoolPushID).Query(boolPushID));
}
else
{
query &= Query<BoolWriting>.Range(r => r.Field(f => f.PubDate)
.LessThanOrEquals(DateTimeUtility.GetUnixTimeStamp(((DateTime)PubDate).AddYears(-10)))
.GreaterThanOrEquals(DateTimeUtility.GetUnixTimeStamp(((DateTime)PubDate).AddDays(-1))));
}
query &= Query<BoolWriting>.Term(t => t.Pushing, 1);
query &= Query<BoolWriting>.QueryString(t => t.DefaultField(f => f.Content).Query("*"));
builder.Sort(s => s.Descending(f => f.PubDate));
//分页
builder.From(0);
builder.Size(1);
builder.Query(f => query);
try
{
return ESAccess.Search(builder).ToList();
}
catch (Exception ex)
{
}
return null;
}
[TestMethod]
public void testboolWritingList()
{
List<BoolWriting> boolWritingList = GetBoolWritingBywhere(DateTime.Now.AddMonths(-1), null);
if (boolWritingList != null && boolWritingList.Count > 0)
{
}
}
#region 附加测试特性
//
// 编写测试时,可以使用以下附加特性:
......@@ -151,7 +233,7 @@ namespace UnitTestProject
int i = 7;
HTCommon.Data6.Item item6 = new HTCommon.Data6.Item();
//将数据构造为ITEM。
item6.Crawler = "DeleteTestOracleBeigeNEWS";
......@@ -180,14 +262,14 @@ namespace UnitTestProject
// ESAccess.BulkInsert<HTCommon.Data6.Item>(array);
ESAccess.BulkInsert<HTCommon.Data6.Item>(array, "other_items");
ESAccess.BulkInsert<HTCommon.Data6.Item>(array, "other_items");
}
}
[TestMethod]
public void BulkInsertTest()
{
int i =8;
int i = 8;
HTCommon.Data6.Item item6 = new HTCommon.Data6.Item();
......@@ -291,12 +373,12 @@ namespace UnitTestProject
item6.Tag = "MinderESFromBeigeOracle";
item6.ItemID = "test" + i.ToString();
//测试目的。1.6前缀自动插入。 2.非前缀,指定other查询。
//ESAccess.IndexOnly<HTCommon.Data6.Item>(item6);
ESAccess.IndexOnly<HTCommon.Data6.Item>(item6,"", "other_items");
ESAccess.IndexOnly<HTCommon.Data6.Item>(item6, "", "other_items");
}
......@@ -331,7 +413,7 @@ namespace UnitTestProject
//ESAccess.IndexOnlyDetail<HTCommon.Data6.Item>(item6);
ESAccess.IndexOnly<HTCommon.Data6.Item>(item6, "", "other_items");
}
[TestMethod]
public void SearchTop()
......@@ -345,8 +427,8 @@ namespace UnitTestProject
//var t1 = ESAccess.SearchTop(builder6);
var t2 = ESAccess.SearchTop(builder6, "other_items");
}
catch (Exception ex)
......@@ -373,9 +455,9 @@ namespace UnitTestProject
[TestMethod]
public void CountStr()
{
string query= "{\"from\":0,\"size\":0,\"query\":{\"match_all\":{}}}";
string query = "{\"from\":0,\"size\":0,\"query\":{\"match_all\":{}}}";
//private,观察函数无误,暂不测试
//private,观察函数无误,暂不测试
}
[TestMethod]
......
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
......@@ -4,14 +4,21 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<!--<connectionStrings>
--><!--测试stringtext--><!--
--><!--<add name="ESDatabase" connectionString="host=mech.palaspom.com|tank.palaspom.com;port=19235;defaultIndex=palas;requesttimeout=0:1:00;version=2;" />--><!--
</connectionStrings>-->
<connectionStrings>
<!--必选:20187150点迁移完成前保留-->
<!--必选:20187150点迁移完成前保留-->
<add name="2ESDatabase" connectionString="host=127.0.0.1|localhost;port=9200;defaultindex=test;requesttimeout=0:1:00;version=2;" />
<!--必选:(全部小写)6没有defaultindexIndex:palas前缀字符+“_”+type -->
<!--必选:(全部小写)6没有defaultindexIndex:palas前缀字符+“_”+type-->
<add name="ESDatabase" connectionString="host=minder;port=9200;requesttimeout=0:1:00;version=6;indexprefix=test_;" />
......
9fc15fed46774ac0d1ca970d3dbe672124b50dd8
edbee5aaa8d2f637fb9b9c16b990e1ec2a89fc86
9fc15fed46774ac0d1ca970d3dbe672124b50dd8
edbee5aaa8d2f637fb9b9c16b990e1ec2a89fc86
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment