Comments (11)
@xiaoheike ,先确定集群里面的每个节点都有安装该插件。
from elasticsearch-analysis-dynamic-synonym.
@bells 不好意思,问题里边我没有描述清楚。我做一些补充说明,该问题在单台机子(只有一个ES
服务实例,shard=5, replia=1)时就会出现。因此我想这个和集群中的其他机子没有安转相同插件无关。不知道你还有什么建议?
from elasticsearch-analysis-dynamic-synonym.
单台机子 replia = 1 似乎没有什么意义,replia = 0 时会出现相同的情况吗?
from elasticsearch-analysis-dynamic-synonym.
@davidcai19840412 replia = 0 也是会出现该问题的。
这一周我一直在纠结这个问题,做了能够想到的实验,但是每次都失败了。不知道你有没有遇到过呢?难道是我的使用方法不对?
from elasticsearch-analysis-dynamic-synonym.
找到问题的原因了:
DynamicSynonymTokenFilterFactory.create()
方法存在并发,变量DynamicSynonymTokenFilterFactory.dynamicSynonymFilters
不支持并发添加,导致部分的DynamicSynonymFilter
对象没有保存到 dynamicSynonymFilters
中。
解决方案,修改两处:
private Map<DynamicSynonymFilter, Integer> dynamicSynonymFilters = new WeakHashMap()-->private List<DynamicSynonymFilter> dynamicSynonymFilters = Collections.synchronizedList(new ArrayList<DynamicSynonymFilter>());
public void run() {
if (synonymFile.isNeedReloadSynonymMap()) {
synonymMap = synonymFile.reloadSynonymMap();
for(DynamicSynonymFilter dynamicSynonymFilter : dynamicSynonymFilters) {
dynamicSynonymFilter.update(synonymMap);
logger.info("{} success reload synonym", indexName);
}
}
}
我尝试过如下修改:
private Map<DynamicSynonymFilter, Integer> dynamicSynonymFilters = new WeakHashMap()
-->private Map<DynamicSynonymFilter, Integer> dynamicSynonymFilters = new ConcurrentHashMap<>();
但是在 create
方法调用时,有对象丢失,具体原因没有深究。
@bells 麻烦你验证修改哈
from elasticsearch-analysis-dynamic-synonym.
遇到同样的问题,同样的语句,查询返回的记录条数,总total数,差异比较大
from elasticsearch-analysis-dynamic-synonym.
i am having the same issue. after changing synonym.txt same search that before the change returned N results, after the change (and changing the query accordingly + waiting for synonym refresh) searches result in inconsistent responses.
no hits, some expected hits, all expected hits.
UPDATE:
I see this is fixed in the new version. i am using an older version for elasticsearch 5.1.1. took the fix from @xiaoheike 's pull request.
Thanks!
from elasticsearch-analysis-dynamic-synonym.
@xiaoheike @bells 请问此问题在master中修掉了吗?
from elasticsearch-analysis-dynamic-synonym.
应该是处理了,之前也有小伙伴询问过这个问题,根据我的分支或者我在本页得修改方案修改代码试试。@xinlmain
from elasticsearch-analysis-dynamic-synonym.
为啥我多次请求同义词,会有分词结果不一样的情况?这是为什么呢?
from elasticsearch-analysis-dynamic-synonym.
其中“三次方”为自定义词
偶尔出现这种情况
{
"tokens": [
{
"token": "三",
"start_offset": 0,
"end_offset": 1,
"type": "en",
"position": 0
},
{
"token": "次方",
"start_offset": 1,
"end_offset": 9,
"type": "m",
"position": 1
}
]
}
想要这种情况。
{
"tokens": [
{
"token": "三次方",
"start_offset": 0,
"end_offset": 9,
"type": "userDefine",
"position": 0
}
]
}
from elasticsearch-analysis-dynamic-synonym.
Related Issues (20)
- WeakHashMap线程不安全,容易造成cpu占满
- 每次创建索引远程加载文件会请求两次 HOT 3
- 同义词热更后所有同义词均会失效 HOT 2
- 新增同义词后某些同义词会失效 HOT 9
- 有人遇到过同义词导致高亮显示不准确的问题吗? HOT 4
- master主分支不支持elasticsearch 7.17.5 HOT 2
- 热更新模式下的remote_synonym的synonyms_path获取同义词接口报异常,插件不会重新调用接口获取同义词 HOT 6
- elasticsearch8以上不支持,一打包就报错啊啊啊啊啊 HOT 2
- a
- master分支下载后编译失败 HOT 4
- 在创建索引时,插件会执行两遍DynamicSynonymTokenFilterFactory::new,导致一个索引创建了2个定时器
- How do I make it compatible with elasticsearch 7.17.12 version?
- Same Function ES indices-reload-analyzers synonym?
- 打包到es8.11.0的时候出错了 HOT 2
- 编译至es8.12.2,create方法抛异常 HOT 3
- Dependency org.apache.httpcomponents:httpclient, leading to CVE problem HOT 3
- 是否支持es7.15.0 HOT 1
- synonym context format issue HOT 2
- does branch master support es:6.8.2
- 建议Monitor将异常抛出打印
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elasticsearch-analysis-dynamic-synonym.