Функция:
public float simpleSimilarity(String u, String v) {
String[] a = u.split(" ");
String[] b = v.split(" ");
long correct = 0;
int minLen = Math.min(a.length, b.length);
for (int i = 0; i < minLen; i++) {
String aa = a[i];
String bb = b[i];
int minWordLength = Math.min(aa.length(), bb.length());
for (int j = 0; j < minWordLength; j++) {
if (aa.charAt(j) == bb.charAt(j)) {
correct++;
}
}
}
return (float) (((double) correct) / Math.max(u.length(), v.length()));
}
Тест:
String a = "This is the first string.";
String b = "this is not 1st string!";
// for exact string comparison, use .equals
boolean exact = a.equals(b);
// For similarity check, there are libraries for this
// Here I'll try a simple example I wrote
float similarity = simple_similarity(a,b);
Вы можете использовать mongodb aggregation pipeline
для достижения того же. Более конкретно, вы можете использовать $lookup
дважды для заполнения parent
и его parent
и, наконец, $project
для выравнивания структуры.
Попробуйте это:
Category.aggregation([{
$lookup : {
from :"categories",
localField : "parent",
foreignField : "_id",
as :"parent"
}
},{
$unwind : "$parent"
},{
$lookup : {
from :"categories",
localField : "parent.parent",
foreignField : "_id",
as :"parent.parent"
}
},{
$unwind : "$parent.parent"
},{
$project : {
l1_id : " Вы можете использовать mongodb aggregation pipeline
для достижения того же. Более конкретно, вы можете использовать $lookup
дважды для заполнения parent
и его parent
и, наконец, $project
для выравнивания структуры.
Попробуйте это:
[110] Примечание: $unwind
используется после этапа $lookup
, так как $lookup
возвращает массив, нам нужно его развернуть преобразовать его в объект.
Для получения дополнительной информации, пожалуйста, прочитайте Mongodb $ lookup документов и $ проектной документации .
Надеюсь, это поможет вам.
id",
l1_name : "$name",
l2_id : "$parent._id",
l2_name : "$parent.name" ,
l3_id : "$parent.parent._id",
l2_name : "$parent.parent.name"
}
}]).then(result => {
// result will have l1_id, l1_name, l2_id, l2_name, l3_id, l3_name
// where l2 is the parent,
// and l3 is the parent of parent
}).
Примечание: $unwind
используется после этапа $lookup
, так как $lookup
возвращает массив, нам нужно его развернуть преобразовать его в объект.
Для получения дополнительной информации, пожалуйста, прочитайте Mongodb $ lookup документов и $ проектной документации .
Надеюсь, это поможет вам.