|
|
|
lucene, поиск в индексе с учетом предыдущего ввода
|
|||
|---|---|---|---|
|
#18+
поиск в индексе с учетом предыдущего ввода, Indexer: сначала индексируется вьюшка из бд таким образом; Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. в kind храниться тип объекта, там может быть (kind1, kind2, kind3, kind4...) в text сам текст, по которому происходит поиск. Searcher: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. например где то юзер вводит такой поисковый запрос, 'foo' (далее он преобразуется в json) и в метод doSearch передается такое {text:'foo', kind:'any kind'}]&i=0 находится все что есть в индексе в поле text и начинается на foo*, индекc i=0 если же хотим найти последовательность и юзер вводит сначала 'foo' потом через пробел 'foo1' преобразуется в {text:'foo', kind:'xxx'},{text:'foo1', kind:'yyy'},...]&i=1 с таким механизмом, просто меняем i=1 и ищем что начинается на foo1*, то есть предыдущий foo никак не учитывается. пока пришел вариант делать промежуточные индексы в RAMDirectory, и потом искать в нем foo1, но делать так на каждый запрос юзера кажется будет накладно, даже если учесть что класс Searcher является @Stateless бином. или тут нужно использовать multiphrasequery ? спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 13:41:40 |
|
||
|
lucene, поиск в индексе с учетом предыдущего ввода
|
|||
|---|---|---|---|
|
#18+
breath, Я честно пытался поменять, что вы хотите сделать, и не понял. Догадываюсь, что вы хотите делать поиск в результатах предыдущего ответа (фича искать в найденном)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 15:17:08 |
|
||
|
lucene, поиск в индексе с учетом предыдущего ввода
|
|||
|---|---|---|---|
|
#18+
как должно быть, юзер вводит 'маши..' ему выдается авто дополненный список слов которые есть в индексе с началом слова 'маши', например 'машина' и какие то еще слова, он выбрал вариант 'машина' и далее еще вводит 'ми..', выдается список машин, которые начинаются на 'ми', мицубиси, миникупер и тд.., получается как в гугле. как работает сейчас, ввели 'маши', получили авто дополненный список слов, 'машина' и какие то еще слова, выбрали машина, и далее еще ввели 'ми', ему покажутся все варианты слов на 'ми', то есть не будет учитываться что мы ищем только в машинах, будут и холодильники и все что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 15:55:06 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=289&tid=2131766]: |
0ms |
get settings: |
15ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
19ms |
get forum data: |
11ms |
get page messages: |
104ms |
get tp. blocked users: |
3ms |
| others: | 338ms |
| total: | 565ms |

| 0 / 0 |
