You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2020/07/29 17:11:08 UTC
[lucenenet] 03/14: PERFORMANCE: Lucene.Net.Index.FieldInfos:
Changed Builder.FieldInfo() method to TryGetFieldInfo() to optimize check
for value (see #261)
This is an automated email from the ASF dual-hosted git repository.
nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit 299e04766ed37af0b9b91affdac6a7e01bd81fa0
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Jul 23 12:05:50 2020 +0700
PERFORMANCE: Lucene.Net.Index.FieldInfos: Changed Builder.FieldInfo() method to TryGetFieldInfo() to optimize check for value (see #261)
---
src/Lucene.Net/Index/FieldInfos.cs | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/Lucene.Net/Index/FieldInfos.cs b/src/Lucene.Net/Index/FieldInfos.cs
index 6f6c77d..59bdcbc 100644
--- a/src/Lucene.Net/Index/FieldInfos.cs
+++ b/src/Lucene.Net/Index/FieldInfos.cs
@@ -365,8 +365,8 @@ namespace Lucene.Net.Index
private FieldInfo AddOrUpdateInternal(string name, int preferredFieldNumber, bool isIndexed, bool storeTermVector, bool omitNorms, bool storePayloads, IndexOptions indexOptions, DocValuesType docValues, DocValuesType normType)
{
- FieldInfo fi = FieldInfo(name);
- if (fi == null)
+ // LUCENENET: Bypass FieldInfo method so we can access the quick boolean check
+ if (!TryGetFieldInfo(name, out FieldInfo fi) || fi is null)
{
// this field wasn't yet added to this in-RAM
// segment's FieldInfo, so now we get a global
@@ -410,11 +410,9 @@ namespace Lucene.Net.Index
return AddOrUpdateInternal(fi.Name, fi.Number, fi.IsIndexed, fi.HasVectors, fi.OmitsNorms, fi.HasPayloads, fi.IndexOptions, fi.DocValuesType, fi.NormType);
}
- public FieldInfo FieldInfo(string fieldName)
+ public bool TryGetFieldInfo(string fieldName, out FieldInfo ret) // LUCENENET specific - changed from FieldInfo to TryGetFieldInfo
{
- FieldInfo ret;
- byName.TryGetValue(fieldName, out ret);
- return ret;
+ return byName.TryGetValue(fieldName, out ret);
}
public FieldInfos Finish()