0

私は次の状況にあります:

Name、FirstName、Phone、Email、...などのデフォルトフィールドを持つ人がいます。

人には多くの言語スキルがあり、languageskillエンティティには次のフィールドがあります:言語、スピーキング、ライティング、理解、マザータング

人は、オフィス、説明、期間、場所などのフィールドで多くの仕事の経験を持っています

Lucene.netでこのようなインデックスを作成するにはどうすればよいですか?

次の検索が可能である可能性があります。

 - FirstName:"Arno" AND LanguageSkill:(Language:"Dutch" AND Speaking:[3 TO 5])
 - FirstName:"Arno" AND WorkExperience:(Description:"Marketing")
 - FirstName:"Arno" AND WorkExperience:(Description:"Marketing" OR Description:"Sales")
 - FirstName:"Arno" AND WorkExperience:(Description:"Programmer") AND LanguageSkill:(Language:"English" AND Speaking:[3 TO 5] AND MotherTongue:"true")

Luceneでこのようなことが可能でしょうか。ドキュメントが次のようになる可能性がある場合は、すでに関係をフラット化してみました。

Name:"Stallen"
FirstName:"Arno"
WorkExperience:"Office=Lidl Description=Sales Location=London"
WorkExperience:"Office=Abro Description=Programmer Location=London"
LanguageSkill:"Language=Dutch Speaking=3 Writing=1 Understanding=3"
LanguageSkill:"Language=Egnlish Speaking=5 Writing=4 Understanding=5 MotherTongue=true"
4

2 に答える 2

1

「あなたが持っているのがハンマーだけなら、すべてが釘のように見えます」

要件は、リレーショナルデータベースにより適しています。フリーテキスト検索に関連するものが何も表示されないので、私はそのように行きます

ただし、Lucene.Netを使用する必要がある場合は、次のようにデータをもう少しフラット化する必要があります。

Name:"Stallen"
FirstName:"Arno"
WorkExperienceDescription:Sales
WorkExperienceLocation:London
LanguageSkillLanguage:Dutch
LanguageSkillLanguage:English

もちろん、これにより情報が失われ、次のような検索を行うことができなくなります。

FirstName: "Arno" AND LanguageSkill:(Language: "Dutch" AND Speaking:[3 TO 5])

PS:1つのドキュメントで同じフィールド名(例:)をLanguageSkillLanguage複数回使用できます。

于 2012-08-06T20:25:24.337 に答える
1

親子ドキュメントを含むJavaバージョンのLucene(3.6)を使用することになりました。IKVMを使用して.netDLLを生成しました。

于 2012-09-04T13:59:13.937 に答える